本文来自 @planningall,很长,主要解决一个问题:我电脑上有很多工具软件,希望有一个系统能帮忙管理,软件用途:可以标明该软件的用途,功能等,如果官方有最新版的会提示是否下载最新版本。

我是如何管理7000+软件的? 1
Photo by Raymond Rasmusson on Unsplash

以下为全文,有兴趣参与的同学可以共同参与。

原标题:《我在软件管理上的一些经验和做法》


先说一个背景,我目前在处理着大约7000个左右的软件。

我是之前写《为什么要使用Windows 10的214条理由》的人,也发过另一个帖子《大家对便携软件感兴趣吗?有大约2000多便携软件,想要筛选筛选》。

提到第一个帖子,是想说用电脑二十多年了,还是积累了一点自己的使用经验,从最初的《大众软件》、《藏经阁》这些光盘上试用软件,到后来 The Last Fantasy 上的 FTP 下载,再到后来各种 0DAY 上的资源,从那时候起就喜欢试用各种奇奇怪怪的软件,后来开始逐渐存档分类。

我是如何管理7000+软件的? 2
图片来自已关闭网站

提到第二个帖子,是因为一直比较倾向于便携软件,从2000年到现在,经历了各种便携化规范的变迁,但大部分都是昙花一现,唯独 PortableApps.com 规范活了下来,目前看活得还挺好。

而国内的 PortableAppC 活了很多年,该网站主要是 jooseng 独挑大梁,坚持每日更新多年,一部分是搬运,还有一大部分都是 jooseng 个人处理。当时 jooseng 每日更新的工作量很大,所以才想将这2000多软件彻底筛选归类一次,功能被覆盖的、不是那么好的,就不要更新了,最终只管理维护100个左右就好。(最终这个网站没等到那天,几个月前死了)。

以上两个帖子是大概介绍下情况,本帖子主要是想回复《需求能管理电脑上软件的系统》。也就是:我电脑上有很多工具软件,希望有一个系统能帮忙管理,软件用途:可以标明该软件的用途,功能等,如果官方有最新版的会提示是否下载最新版本。

如果只是普通的、常规的用途,有两个选择:

PortableApps

PortableApps 客户端,总共管理着407个便携软件,基本覆盖日常的绝大部分工具。具体列表见长图。

我是如何管理7000+软件的? 3

第一个管理平台活得好好的,而且符合PortableApps.com规范的软件包(一般是*.paf.exe格式文件名)远不只该平台维护的407个,因为任何人都可以制作符合这个规范的包,但平台之外的paf包不一定有更新维护。

LiberKey

LiberKey 这个网站的客户端,总共管理着294个便携软件,基本也满足常规的日常使用。具体见长图

我是如何管理7000+软件的? 4

第二个平台已经不再更新客户端,但已有的294个软件仍然在持续更新,而且更新速度也还可以,软件官网更新了,这个平台很快也会跟进推送(可以设置)。我个人目前在用第二个平台客户端管理程序。

我是如何管理7000+软件的? 5

好多年前也写过一个同类平台的对比帖子,见上图。这个客户端的使用效果见附件图,这是个GIF动图。 (这个GIF文件15.5M,超过尺寸,也传到了微博相册上)

以上两个管理软件都能满足帖子中要求的:自动分类、鼠标悬停提示软件用途、功能,搜索备注信息,软件有更新了随时提醒更新,可以手动选择,也可以一次性批量更新。

除了以上两个管理程序,各种全家桶软件管家、Chocolatey、Scoop、SUMo我也都试用过,都存在一个问题: 不被平台支持的程序怎么办? 所有这些管理平台并不能管理这个世界上的所有程序,不管多牛的人写出多牛的爬虫也做不到。我自己也尝试写过脚本、写过程序来管理,但都非常不理想。

如果只是日常使用,手头只有几十个或者百来个程序,这都不是事儿,但如果是松鼠症患者,不断积累了上千个程序,或者到了松鼠症晚期,积累了上万个程序呢?怎么来管理?

现在就到重点了,这种情况怎么办?

一个接近晚期的松鼠症患者是怎么管理7000多软件的。

下面说一下我目前正在做的事情,而且想找很多人一起做的事情:

因为之前下载了 PortableAppC 上的全部2000多个便携软件,再加上自己之前积累的5000多个不便携的软件,总共七千多个,某一天,我突然觉得不能再这么下去了:下载-归档-下载-归档,就算攒了全世界所有的软件又有什么意义?我应该对它们筛选、分类、淘汰,只留下最好的。

于是开始做下面的工作:

1. 规范软件命名:

之前保存的非常混乱,有在文件夹中的,也有打了压缩包的,或者就是单个一个安装程序,还有那种 0DAY 组织发布的时候分成了几十包的。所以第一步,我花了很多时间把这些软件重新规范命名:

[公司名][软件名][版本名]v[版本号][便携特征]

规范命名有几个好处,比如可能同时保存了同一个软件的不同版本,那可以比较放心的删掉低版本的(实际情况是,除非特别确信,一般会保留最近的三个版本。);规范命名也方便后期用正则表达式处理;而且都用下划线分隔,也便于直接在 Excel 分列处理。

  • 公司名:之所以带上公司名,是很多时候有同名软件的情况,带上公司名,基本就不会重名了。绝对不会重名的软件一般就不带公司名了。
  • 版本名:这个参数主要是针对软件不同版本的,有时候也没这个参数,比如 Pro、Extreme、Business、Home 等;
  • 便携特征:如果是安装包,那就没有,如果是便携化的软件,会在最后加上Portable。

版本号就不说了,v4.5.1这种,以前很少有直接把年份做版本的,现在流行起来了,不过还是有内部版本号的,所以这种一般把年份写在版本名之后,版本号写内部版本号。

还有一类软件,是以其他软件的插件形式存在的,这种的命名是在最后加上:

_for_软件名

所有软件都以文件夹形式保存,以下是两个典型的文件夹名:

  • ABBYY_FineReader_Enterprise_v14.0.105.234
  • Avenza_MAPublisher_v10.2_for_Adobe_Illustrator

2. 建立分类词表:

为了管理好软件,肯定不能全堆到一起,最好是有一个科学、规范、好用的分类,以便下一步工作进行。所以又花了一段时间专门研究了几个大的软件下载站的分类,比如 Softpedia、Softonic 等,最后弄了一个三级分类词表,不过大部分两级就够了,少数几个分类用到了三级,比如:

  • Files>>Renamer:第一级分类是针对文件处理的通用工具,在这下面的第二级批量重命名工具;
  • Files>>Compare:第一级分类是针对文件处理的通用工具,在这下面的第二级文件和文件夹内容比较工具;
  • Audio_Video>>AV_Editor>>Video_Convert:第一级分类是针对各种音视频文件的工具,在这下面的第二级针对音视频编辑的工具,在这下面的针对视频格式转换的工具;

这样一共建了274个分类,也就是274个文件夹归档以上7000多程序。

同时在 Excel 表格中建了对应的三级级联菜单,也就是选了一级分类,就限定了二级分类,选了二级分类就限定了三级分类。

3. 评级:

本来应该建立一个比较复杂的评级体系,比如软件是否便携、有无中文、商业还是免费等等,不过最后还是从完全实用的角度出发分了四级:核心、偶尔、归档、删除,不管你商业还是免费,不管有没有中文。

对软件的评级定好了,也就有了对应的更新管理策略(类似电影分级)

  • 核心:最常用软件,几乎每天都要用到的,这类核心软件放在单独一个文件夹中,不参与全局分类。半年主动更新一次,去软件官网更新。
  • 偶尔:这种软件会用到,但只是偶尔用到,频率可能一个月一次甚至半年才用一次。这种一年到两年更新一次。
  • 归档:软件确实是好软件,也存在用到的可能性,但根本不知道什么时候会用一次,这种保留当前版本的安装包,只有哪天真的要用了再更新。(如果一时找不到可用的最新版本,还有归档的老版本备用)
  • 删除:这种就是直接删除,只在 Excel 中留个条目,以免将来踩雷。带广告的、弹窗的、捆绑的,肯定都删掉。更主要的被删除的原因是功能被其他工具覆盖的,没有其他工具好用的、强大的、被包含的,这种都会被删掉。

(青小蛙觉得,用归档替代删除可能更好。)

4.进 Excel 处理:

到这一步开始做一个 Excel 文件:

我是如何管理7000+软件的? 6
  • 第一列,很窄,填色用,有时候遇到存在问题的程序,就填个红色,方便以后在处理;还会填其他颜色代表不同意义,比如被删除软件填黑色块。这一列不用细说。
  • 第二列:软件名称,就是在第一步规范处理之后的七千多个软件名;
  • 第三列:一级分类
  • 第四列:二级分类
  • 第五列:三级分类
  • 第六列:评级,也就是这个软件是核心、偶尔、归档还是删除。
  • 第七列:软件功能概要,用尽可能少文字尽可能描述这个软件的功能,目前是限制在28个字。
  • 第八列:备注。这里备注各种有必要备注的东西,比如有捆绑、高危存疑、项目已终结、软件更名、公司被收购、合并、皮包公司、假洋鬼子公司等等。
  • 第九列:官网地址,这个是尽可能都填上的,找一个软件,查介绍、教程、更新、首先去官网啊。

5. 填写软件功能:

上面的表格弄好之后,就是用尽量少的字描述软件的主要功能、特色功能、独特的地方。

这个花费了我不少时间,即使通过程序名可以大概判断功能的、或者在国内的下载站有中文介绍的,我还是尽量找官网去看下软件的官方介绍。而且在找软件官网的过程中能发现很多问题,比如软件已经被收购、官网地址已经变更、甚至软件名称也变更了、软件已经更新换代被同公司的另一个软件代替等等。

6. 分类:

软件功能描述都整理完成之后开始对这些软件分类,其实就是一二三级分类,看着表格的第七列内容,鼠标在第三四五列点点点就行了。这个没花太多时间,也已经做完了。

这是已经完成的Excel表格,见附件,是一个GIF动图,也是超过尺寸,只能存到微博相册里。

7. 分入文件夹:

7000多软件,软件功能描述整理完了,每个软件的三级分类也都弄完了,就要把这些软件分入各个对应分类的文件夹了,不能7000多软件都在一个文件夹中。因为规范化了三级分类的名称以及对应文件夹的名称,也规范化了软件名称和所在文件夹名称,所以做了一个简单的批处理文件,自动把 Excel 表格中同类的程序分类到了对应文件夹中。

8. 重新组织内容:

在规范化程序名的时候,为了统一处理,所以把收集过的内容全都扔到了一个大文件夹中处理,在规范化的过程中也发现了一些问题:

比如当初不同文件名保存的,其实是同一个程序;同一个程序保存了好几个不同的版本;某些版本的程序带着资源文件;某些则是很干净的核心程序,没有任何资源库;也有些带着几个 G 的 PDF 说明文档等等。这些资源库、教程文档、素材库等等,都是与核心程序的版本无关的。所以在这一步重新组织了文件夹,比如现在:

  • SAS_JMP_Statistical_Discovery_Pro_v13.2
  • SAS_JMP_Statistical_Discovery_v9.0.2
  • SAS_v9.1_Portable
  • SAS_v9.4.M3

这四个文件夹以前都是同级保存在 Statistics 文件夹下的,现在就把他们统一保存在 Statistics/SAS 这个文件夹下了,而且 SAS 下还有一个 Document 文件夹。

这样有两个好处,一个是便于同公司不同软件、同软件不同版本的对比淘汰;一个是删除淘汰某些版本程序的时候,通用的那些资源库、文档、素材库等都可以保留下来,不会误删。

这部分工作只做了一部分,是准备在软件最终的比较淘汰这一步同时做的。

9. 重新优化三级分类:

因为这个三级分类是在第二步做的,那时候还没有把所有的程序功能描述写完,所以在具体分类的时候,发现原有的分类并不是很完善,有很多不妥的地方。

比如把很多读取和转换 CAD 文件的程序归类到 Design\CAD 下面就不太合适,所以重新调整成这样:Files\CAD_Tools

把专门读取各种格式的 CAD 文件、转换、批量打印、简单标注这类功能的程序归类到了文件下面,和 Files\PDF_Tools 是同级的、同逻辑分类。

比如还有些专门下载各种卫星图、拼接大图的程序,以前是归类到 Web_Internet\Download\Map 下的,也就是网络工具>>下载工具>>地图下载这里,但是感觉还是合并进 GIS 分类比较好,和 ESRI\MapInfo\Analist 这些放到了一起。

这个工作也没有做完,因为感觉还是和软件的最终比较淘汰这一步同时做比较好。先暂用原有的分类,在比较淘汰的过程中发现分类不妥的,随时调整,这样能做的比较精细、细致。

10. 独立的系列:

并不是对所有的程序都做统一的大分类,有几个系列的软件是单列的,比如单独弄了一个 Series 文件夹,这下面还有几个文件夹,分别是 Microsoft、Adobe、Autodesk、ESRI、ANSYS 等。这几个公司的软件不参与统一分类。

11. 插件的分类:

在第一步规范命名的时候,一个程序如果是另一个程序的插件或者增强包、组件等,会在名称最后写上 _for_软件名,最初的时候是参与大分类的,后来觉得这样管理不科学,所以在文件夹组织上,把所有这类插件程序都归类到对应主程序文件夹的 Plugins 文件夹下面。基本上是和主程序文件夹下的 Document、Resources 这类内容同级了。

12.比较淘汰的原则:

全世界有那么多的程序,但是其中绝大部分是可以被另一小部分代替的,几乎没有存在的价值。

比如同一个公司的一个旗舰软件可能覆盖了旗下三四十种程序的所有功能;

比如好几个不同公司的程序,其实都是同一个内核套了不同的马甲,比如 4Videosoft、Aiseesoft、AnyMP4、FonePaw、Tipard 这几个公司,每个公司都出了好几十个软件,但是完全雷同,说它们之间没有联系估计是不可能的,几百个软件,有保留价值的可能就三两个。

有些强大的软件几乎可以彻底取代一大类程序,比如一个 After_Effects 就取代了几乎所有视频编辑类程序、一个 Media_Encoder 也取代了几乎所有视频格式转换工具。

软件在功能数量上、功能质量上、支持的文件格式上、是否有中文、是否便携化、软件尺寸上、界面美观上、使用便捷上等等,其实是可以有非常综合的评价体系和比较淘汰原则的。因为之前一直是我个人做这个事情,所以也没有弄一个比较系统一致的比较淘汰原则,完全是主观判断,有些软件打开一开,界面太丑,功能太简陋,直接就列入【删除】。

13. 最后一步:

以上所有工作的最后一步也就是比较淘汰,我希望的是核心程序大约20个左右、偶尔程序大约100个左右,存档程序大约300个左右,剩下全都是删除的。

一个程序无论删除与否,都会保留在这个 Excel 表格中,写一个很简单的脚本,或者干脆就用 Excel 里面的 VBA 写一小段代码,以后再看到什么程序,复制一下文件名,一个快捷键就能判断这个程序是不是已经在表格中,是什么级别的。

在这些程序具体使用的时候,我准备把核心和偶尔这两个级别的程序都用 TotalCommander 管理,Ctrl+Q 使用 TC 内部的快速查看,F3 使用外部编辑程序、F4 使用外部查看程序。同时不便于在 TC 中调用的程序,都放入 Liberkey 中管理。

14.现实情况:

其实上面所有的工作,我已经做到了最后一步。在我一年多前准备做这件事的时候,是想征集一些人能一起做的,在几个论坛发过帖子,不过应者寥寥,大概是真的没人对这个事情感兴趣。

仔细想想也确实是这样,在每个人各自专业的领域,哪些工具是最强大最好用的,基本是有公论的;平常偶尔用一下的工具 ,从实用主义角度出发,什么时候需要用了就搜一下,随便找来一个能用就行,不好用就再换下一个。我现在做的事情,纯粹是松鼠症患者+完美主义者+偏执狂才会干出来的事情。

做这件事情最初的初衷,是希望减少 jooseng 的工作量,不要维护2000多程序,能减少到日常维护100多个就好。后来的心理逐渐演变成了希望通过一次性整理工作,基本做到一劳永逸,从今以后都不再投入时间在程序的更新、维护、管理、挑选上。Excel 表格中、程序存档文件夹中、TC 的关联设置中、Liberkey 的分类启动管理中,都有一致性和自动化脚本管理,干净清爽。

但是当真的做到最后一步,需要比较、筛选、淘汰的时候,发现这根本不是一个人能做好的事情了。

a.首先是工作量,就不是一个人可以做到的。要想筛选同类软件,那就需要把这一类别下的每一个软件都打开,摸过其中的所有功能,至少是大部分功能,才能有比较客观的评价。

b.其次是专业性,我可以评价城市规划类、建筑类、三维建模、三维渲染、地理信息类的专业软件,打开一个软件摸一摸,基本就能知道功能如何,是否有其他同类软件不具备的独特的功能,或者根本就是一个玩具。但是对其他专业类的软件,比如仿真分析的,我根本就没有评价挑选的能力,只能是打开摸一摸,对功能明显很弱的删除,其他更多的评价只能是看看官网、看看网络上各种地方的介绍。

c.第三是倾向性上,这7000多软件之所以能在我电脑里,是因为最初下载的时候,看看大概的功能,都是我感兴趣的,也觉得是自己有可能会用到的,所以才会下载下来。比如这些软件中,就完全没有关于Wordpress的、数据库的、集成电路设计的、工厂流程管理的、CNC制造的等等;编程语言相关的只有Python和C#,其他所有编程语言都没有;

d.第四,一个人的见识终究是非常非常有限的,尤其是在面对整个程序世界来说,实在太过微末,比如在我的分类中,确实有Markdown编辑器这个分类,但是在小众帖子推荐中提到的编辑器,我就有好几个没见过。

由于这四点原因,其实我是希望能有尽可能多的人以及尽可能多不同专业的人能一起稍微做做这部分工作。就算没有专业知识的加入,一起做做视频转换类的、音频编辑类的、数据恢复类的、加密解密类的这种常规通用软件比较挑选也好……

以上就是我在管理大量软件的时候的一点经验和做法,以及我目前正在做的事情。

我也希望有尽可能多的人看到这个帖子,其中能有几个松鼠症+完美主义者+偏执狂愿意一起做做这个工作,那就不枉我写这么多字了。


恭喜你看到了这里,如果对这个事情感兴趣,可以直接联系:planningall@163.com,也可以前往继续讨论。

更新

以下是 @planningall 发来的新的回复:


非常高兴这个帖子进入了关于“意义”这一层面的讨论。我甚至觉得这比具体挑选出来一个什么工具更有价值。

@savuluan99,@浮生缘梦,@山城子,三位说的内容我都非常认同。

其实我做这件事情,有几个方面的考虑:

  1. 减少 jooseng 的维护工作量,这是最直接的动因,可惜那个网站已经不在了;
  2. 方便自己,基本做到一劳永逸,因为不想再像之前的二十年一样,投入太多时间在软件搜集上;
  3. 惠及他人,整理、比较、挑选之后,将有公论的结果整理分享;(就像小众软件的“我最喜欢”,只是条目太少了)

我希望这是一件能带给更广大网友便利和价值的事情,也就是让它产生更实际的“意义”,超越单纯的“整理”。(如果只是单纯的整理,其实我已经做完了,而这件事情的“意义”在于后面的比较和筛选。)

(说到“意义”,说到“惠及他人”,其实我真的觉得目前的网络环境和十年前,二十年前太不一样了。

最早在98、99年,2000年到08年,这十年间,网络上更普遍的精神是分享和贡献,很多人愿意花费很多时间做很多对自己并不产生实际意义的事情,就是单纯的在分享和贡献。那时候的协作平台没有现在高级,网速没有现在快,资源没有现在多,但是大家以简陋的工具、笨拙的方法,仍然独立或协作生产出了大量优质的内容,这些无私奉献的优质内容甚至直到今天都在产生着价值。但是最近这几年,气氛好像完全变了,一言以蔽之:全都是生意。

我是从那个黄金时代过来的,我还是愿意坚持这种精神:分享和贡献)


其实如果只是为了给完成每一种任务找一个工具,完全不必这样。现在是在挑选出完成每一种任务最强大好用的工具。

我之所以会这么偏执,也有其他方面的影响:当初在准备学位论文开题的时候,导师说:“你要把关于这个方向所有的论文和书籍全都看完才可以动笔写自己的论文”。我的同门师兄弟都没听导师的,所以他们都顺利如期毕业了。而我每周看两本专业书籍,每天看若干学术论文,如此三年没有间断,然后就不出意料的延毕了。实际上从我开始动笔写到完成,只用了十五天,十万字。之前一直不写,都是自己在跟自己较劲,非要把这个学科所有的东西看完……


再多说一些,也是有感于@savuluan99,@浮生缘梦,@山城子三位的回复。

我今年38了,做城市规划,最早用电脑是在98年左右。2000年电脑联网之后直接就患上了松鼠症。因为一直注意数据安全和备份,所以这20年来从没丢过一个文件。这20年来积累了大量的资料,上面的软件只是其中最小最小的一部分。另外还有大量的电子书、建筑方案、城市规划方案、各省市县基础数据、三维模型、电影、电视剧、图片、A片、黄图、各类教学、专业的教学、个人爱好的教学等等。从最初的6.4G硬盘逐渐更新换代,目前是10块4T的,8块8T的,4块10T的。

比如对A片的整理,其实我也有一套方法,比如说我对视频文件的命名规则:[有无码][国别][主类型][次描述][片名][演员][是否字幕][番号],之所以用[]分隔,是方便在TC中通过插件分列,方便查找排序……

比如:[有码][日韩][双飞][同居姐妹][长谷川由梨-杏子优][中文字幕][FSET-397].mp4 就是视频文件的一个典型文件名

不过从今年初开始,我已经在有意识的做人生的减法。因为我意识到目前已有的这些东西,就已经是我看几辈子学几辈子都看不完学不完的了。

所以从今年开始,我没有再增加什么资料,反而是在一点一点处理这些已有的东西。做更清晰整洁的分类、只留下最优质的资源(比如值得留给后代的)、价值不高的删除、觉得这辈子都不可能用的上的删除(比如我居然翻出来一堆 CCNA 和 CCNP 的教学,不知道当初下载的时候怎么想的),各种各样的删除。

今年到现在,已经删掉了大概 20T 左右的东西。对这7000个软件的处理,其实也是这个减法人生的一部分,想把这7000个减到300个。

再加上今年转行,之前干城市规划干了快20年。后面20年我将从事一个完全不同的行业,所以从今年开始,也在对自己这20年积累下来的专业资料做系统的梳理,删掉了很多很多当初保存下来,想着找机会要学要看的资料,但这辈子已经不可能再有这样的机会。

刚刚38,已经开始做人生的减法。