`
llyzq
  • 浏览: 589116 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

关于软件开发、领域知识、职业危机以及UML的计算主义思考

阅读更多

转自:http://blog.csdn.net/lifegame/archive/2011/06/20/6557405.aspx

最近无聊时候,常常在琢磨领域建模相关的问题,比如医学图像处理领域,一致性显示流程算不算领域知识?那卷积反投影呢?它们都可以放到模型里面去吗?这样的模型,对你最终的服务对象,产品定义和软件设计人员有用吗?对这些问题思考得越深入,往往就会离题越远。

--

21世纪,软件已经渗透进人类生活的每一个领域,从指头大小的音乐播放器到遍布全球的互联网络。为了开发出真正有用的软件,程序员要不断地学习不同领域的知识。在一个领域工作久了,程序员也就慢慢变成了这个领域的专家。于是,一部分人开始尝试定义需求,成为产品的设计者;一部分人干脆就进入他们的软件所服务的行业,成为有技术背景的营销人员或CIO。

在这个每个人(不管是小学生还是社会学博士)都会编程的时代,人们不禁要问,软件的核心价值到底是什么?是这些人职业生涯的跳板?还是各种传统行业附属品?对于后者,软件外包就是个典型。特别是在发展中国家,软件产业链的下游,不管你的公司名字有没有带上外包的字眼,只要你跟老外打交道,你大多都跟外包有关。

就算很多自称是软件领域的资深人士,他们要么为了写出高质量的系统级代码,也不得不慢慢成为精通计算机原理的硬件专家;要么为了编写优秀的文本和图像处理算法,也不得不成为统计学或数据处理领域的专家;要么为了成功组织和实施应用软件开发项目,也不得不慢慢成为精通他们的产品或项目所服务领域的运营规律的行业专家。在前几次工业革命时期,我们难以想象一个搞蒸汽机的人,还会关心一艘破冰船如何能浮在水上不沉,或者一辆洲际列车上各种工作人员是如何协作的。

一些人把这种现象归因于软件行业还太年轻,难以形成成熟的自成体系的东西,事实真的是这样么?要达到什么程度,软件行业才算成熟呢?这个行业跟其他各种行业的关联是如此之深,也许真有它成熟的那一天,那软件就真是无所不包,也什么都不是了。

我宁愿相信,软件是一种工程化的数学工具。就像传统的数值计算工具(比如计算器)也可以在不同行业广泛应用那样,现在大多数的程序员(也就是很多公司里被叫做软件工程师,而不是算法研究者的那些人)正是在为不同的行业生产各种非数值计算工具。

一些非数值计算的原理,如布尔代数、集合论、关系代数等,被用模型化的方式进行了封装,从而更加方便地为不同领域进行订制。这种模型化的方法在实践中得到了长足的发展,比如面向对象和设计模式,它们一层套一层,一层比一层远离基本的数学原理,一层比一层更接近于所服务的领域中的一些众所皆知的常识:比如文档是一个实体,但审批者就不是一个实体,而是一个角色,因为一个人既可以是审批者也可以是提交者。

越来越多的程序员开始工作在这种接近于常识的层面上,他们的代码也变成这些看似众所周知的常识的一种笨拙和机械的翻版。尽管如此,有些代码最后还是卖出了高价。于是他们渐渐淡忘了自己是如何来到这个层面上的,甚至开始诋毁他们的大学老师,为什么浪费时间教我们数学,而不是跳过数学直接教授面向对象和分析模式。而后者,是那么的简单实用,不管是一个小学生或者一个完全不懂计算机的老板,都可以很容易的理解。而往往老板都觉得自己都很容易做到的事情,他肯定不舍得花大价钱请人来做。

于是软件外包大量出现,很多地方的软件产业也叫做软件“服务”行业。但即便是在外包公司里面,大多数编程工作却更像是在生产一种“产品”。这些产品帮助职员和管理者提高工作流程和信息管理的效率,或者帮助医生、平面设计师或搜索引擎的用户方便地利用各种数值计算工具及其结果(别忘了,编写这些真正能卖钱的数值算法的人一般不叫做程序员,而叫做算法科学家)。这些软件有幸运行在电子化(至少目前为止还是基于电磁场原理)的计算设备上面,并跟随这些设备一起销售(虽然未必是同一家提供商),从而使得它们跟传统的数值计算工具(比如计算器或精算师)很不一样。当然,计算机也能做并且能做更加强大的数值计算,我们也没有必要评价数值和非数值计算谁好谁坏,或者谁更容易赚到钱,但我们必须承认,如果计算机只能做数值计算的话,也许不会带来真正意义上的信息化革命。

后来随着开源社区以及云计算的推进,代码本身开始变得越来越便宜。随着越来越多的代码变成完全免费,编写代码的工作才越来越接近真正意义上的“服务”。在我接触到一些互联网业者眼里,源代码保护是一个根本不值得讨论的问题。比如你用HTML5实现了某个很酷的功能,有一个人点击右键查看源代码,然后一步步破解并移植到自己的网站上,而另一个人模仿你的功能,自己重新实现一遍:其实他们这两个人花的时间和金钱并没有多大差别。

确实,如果没有涉及一些只有算法科学家研究出来的东西的话,大多数被叫做软件工程师的人做出来的东西,就会面临这样的境遇。也许在互联网以外的其他行业,软件开发工作的性质从产品制造转向服务提供,还有很长的路要走,但这已无可争议地成为一种趋势。

这样的转变,是好事还是坏事,完全取决于你自己的选择。如果你在熟练的编写代码(或者熟练的带领一堆人编写代码)之外一无所知的话,你的处境可能会变得有点困难。于是,你要么挖空心思把软件的“服务”做深,把产品做成平台,走向产业链高端,或者提供软件开发和管理技术咨询和培训;要么还是给自己装备一些非数值计算之外的所谓“领域知识”,比如图像处理、数据挖掘、设备控制原理、行业信息化经验、大众消费和社交习惯等。当然,还有很多其他选择,比如放弃技术,投身商海。

不管怎样,只要你还在编写软件,并且不想被可有可无的项目进度、乱七八糟的新技术、莫名其妙的职业危机困扰的话,你就得认清楚软件的本质和核心价值,并理解软件是怎么走到今天,以及明天可能会走向何方。

回到前面的话题吧:虽然计算机最初只是用来做解决数值计算的问题的,但正是这些看似小学生都能理解的非数值计算,触发了这次技术革命,并成为软件产业得以发展的原始动力。其实我们根本没有必要为能编写程序的小学生感到惊讶,因为他们同样也能组装出一台半导体收音机。亲自动手编程,几乎已经成为每个普通人理解这个时代正在发生的很多事情的唯一途径。

--

书柜的底部压着一本书,《嵌入式系统的微模块化程序设计》,是我多年前买的,一直没有机会看。买书的理由很简单,因为里面有一张用来描绘氢原子能级跃迁的UML状态图。顺带提一下,书的作者是一位曾经在GE医疗工作的软件架构师。

在量子力学打破经典物理学的统治之后,在人类社会的各个领域,数值计算工具正在变得越来越力不从心。人们发现数值计算只能处理一些不大不小的理想化的简单场景。在微观和宏观这两个极端出现的复杂性面前,人们只能用微积分和统计学给出一个大致的描述(比如概率和波函数),而无法精确分析每个个体的行为。在本来大量使用数值计算模型来解决问题的领域,非数值计算模型(比如元胞自动机之类)开始发挥越来越大的作用。很明显,UML天生具备了描述某些非数值计算模型的强大能力,并且比学院派教科书里面的形式逻辑更加容易理解。

如果用计算主义的视角观察这个世界,其实每个领域都存在着数值计算和非数值计算模型,在一些领域他们互为补充,在另一些领域也许其中的一方占有压倒性的优势。就拿信息化领域来说,一个精通某个领域的信息对象的处理规则和流转方式的人,未必需要知道信息量是如何定义和计算的,或者人们为什么非要使用比特这个单位。

有趣的是,越是传统的数值计算模型难以企及的领域(比如要监控流程中的每一道工序),对软件和一般程序员的依赖程度就越高。你可以想象一下,一个组织在没有建立起支撑内部精细作业流程的信息系统之前,讨论正态分布和西格码的取值是何等的空洞和乏味。

--

之前系统的一些问题,导致hertz同志的一个回复不小心被删掉了,
他提到:新时代软件工程的核心在于方法论。

很感谢hertz同志,软件工程的核心是方法论,确实是现在业界的共识。
我也曾经对这个观点深信不疑,但最近一两年似乎开始有点动摇。

在这之前,我曾关注过一阵软件架构和设计方法论,
时间再往前推,也关注过CMM和迭代之类的开发管理方法论。
随着了解的深入,我越发觉得方法论的研究已经遇到一些瓶颈,
就像摩尔定律最终可能止步于物理学定律那样。
其实,自70年代软件危机以来,方法论已经取得巨大的进步,
而未来的突破,只能等待认知科学或管理学的进展。

实际工作中的体会是:即便你方法论用得再好,
它终究还是一种外部的,指导性的最佳实践,或制度性的管理流程。
项目最终的成败还是取决于人,特别是人脑中的领域知识,
以及如何把这些领域知识转换成可编程的计算模型的能力。

我以前的一篇博客提到了一个案例,
正好能说明一个缺乏领域知识的团队,是如何在正确的方法论指导下做出错误的软件的。
当然你可以把责任推到选人、用人或知识管理的角度上,
但这就变成一个管理学问题,而非软件工程问题了。

这里说的领域知识既可以是一个编译器的工作原理,也可以是某个行业的信息化经验。
软件开发很多时候就是把领域知识转换成计算模型,然后编程实现出来,
这种转换有时会用到OO方法论,但有时未必。

对于一些新的领域(比如现在的云计算),这个转换的过程就像在荒原上旅行,
人走多了,路(即方法论,比如MapReduce之类的编程模型)才会慢慢显现。
也许方法论是软件工程需要关注的一种重要产出,但似乎不是最核心的驱动力。

 

分享到:
评论

相关推荐

    智能车竞赛介绍(竞赛目标和赛程安排).zip

    全国大学生智能汽车竞赛自2006年起,由教育部高等教育司委托高等学校自动化类教学指导委员会举办,旨在加强学生实践、创新能力和培养团队精神的一项创意性科技竞赛。该竞赛至今已成功举办多届,吸引了众多高校学生的积极参与,此文件为智能车竞赛介绍

    集字卡v4.3.4微信公众号原版三种UI+关键字卡控制+支持强制关注.zip

    字卡v4.3.4 原版 三种UI+关键字卡控制+支持获取用户信息+支持强制关注 集卡模块从一开始的版本到助力版本再到现在的新规则版本。 集卡模块难度主要在于 如何控制各种不同的字卡组合 被粉丝集齐的数量。 如果不控制那么一定会出现超过数量的粉丝集到指定的字卡组合,造成奖品不够的混乱,如果大奖价值高的话,超过数量的粉丝集到大奖后,就造成商家的活动费用超支了。我们冥思苦想如何才能限制集到指定字卡组合的粉丝数,后我们想到了和支付宝一样的选一张关键字卡来进行规则设置的方式来进行限制,根据奖品所需的关键字卡数,设定规则就可以控制每种奖品所需字卡组合被粉丝集到的数量,规则可以在活动进行中根据需要进行修改,活动规则灵活度高。新版的集卡规则,在此次政府发布号的活动中经受了考验,集到指定字卡组合的粉丝没有超出规则限制。有了这个规则限制后,您无需盯着活动,建好活动后就无人值守让活动进行就行了,您只需要时不时来看下蹭蹭上涨的活动数据即可。 被封? 无需担心,模块内置有防封功能,支持隐藏主域名,显示炮灰域名,保护活动安全进行。 活动准备? 只需要您有一个认证服务号即可,支持订阅号借用认证服务号来做活动。如果您

    出口设备线体程序详解:PLC通讯下的V90控制与开源FB284工艺对象实战指南,出口设备线体程序详解:PLC通讯与V90控制集成,工艺对象与FB284协同工作,开源学习V90控制技能,出口设备1200

    出口设备线体程序详解:PLC通讯下的V90控制与开源FB284工艺对象实战指南,出口设备线体程序详解:PLC通讯与V90控制集成,工艺对象与FB284协同工作,开源学习V90控制技能,出口设备1200线体程序,多个plc走通讯,内部有多个v90,采用工艺对象与fb284 共同控制,功能快全部开源,能快速学会v90的控制 ,出口设备; 1200线体程序; PLC通讯; 多个V90; 工艺对象; FB284; 功能开源; V90控制。,V90工艺控制:开源功能快,快速掌握1200线体程序与PLC通讯

    基于Arduino与DAC8031的心电信号模拟器资料:心电信号与正弦波的双重输出应用方案,Arduino与DAC8031心电信号模拟器:生成心电信号与正弦波输出功能详解,基于arduino +DAC

    基于Arduino与DAC8031的心电信号模拟器资料:心电信号与正弦波的双重输出应用方案,Arduino与DAC8031心电信号模拟器:生成心电信号与正弦波输出功能详解,基于arduino +DAC8031的心电信号模拟器资料,可输出心电信号,和正弦波 ,基于Arduino;DAC8031;心电信号模拟器;输出心电信号;正弦波输出;模拟器资料,基于Arduino与DAC8031的心电信号模拟器:输出心电与正弦波

    (参考项目)MATLAB口罩识别检测.zip

    MATLAB口罩检测的基本流程 图像采集:通过摄像头或其他图像采集设备获取包含面部的图像。 图像预处理:对采集到的图像进行灰度化、去噪、直方图均衡化等预处理操作,以提高图像质量,便于后续的人脸检测和口罩检测。 人脸检测:利用Haar特征、LBP特征等经典方法或深度学习模型(如MTCNN、FaceBoxes等)在预处理后的图像中定位人脸区域。 口罩检测:在检测到的人脸区域内,进一步分析是否佩戴口罩。这可以通过检测口罩的边缘、纹理等特征,或使用已经训练好的口罩检测模型来实现。 结果输出:将检测结果以可视化方式展示,如在图像上标注人脸和口罩区域,或输出文字提示是否佩戴口罩。

    kernel-debug-devel-3.10.0-1160.119.1.el7.x64-86.rpm.tar.gz

    1、文件内容:kernel-debug-devel-3.10.0-1160.119.1.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/kernel-debug-devel-3.10.0-1160.119.1.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊

    day02供应链管理系统-补充.zip

    该文档提供了一个关于供应链管理系统开发的详细指南,重点介绍了项目安排、技术实现和框架搭建的相关内容。 文档分为以下几个关键部分: 项目安排:主要步骤包括搭建框架(1天),基础数据模块和权限管理(4天),以及应收应付和销售管理(5天)。 供应链概念:供应链系统的核心流程是通过采购商品放入仓库,并在销售时从仓库提取商品,涉及三个主要订单:采购订单、销售订单和调拨订单。 大数据的应用:介绍了数据挖掘、ETL(数据抽取)和BI(商业智能)在供应链管理中的应用。 技术实现:讲述了DAO(数据访问对象)的重用、服务层的重用、以及前端JS的继承机制、jQuery插件开发等技术细节。 系统框架搭建:包括Maven环境的配置、Web工程的创建、持久化类和映射文件的编写,以及Spring配置文件的实现。 DAO的需求和功能:供应链管理系统的各个模块都涉及分页查询、条件查询、删除、增加、修改操作等需求。 泛型的应用:通过示例说明了在Java语言中如何使用泛型来实现模块化和可扩展性。 文档非常技术导向,适合开发人员参考,用于构建供应链管理系统的架构和功能模块。

    基于四旋翼无人机的PD控制研究 附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    C#与VB实现欧姆龙PLC的Fins TCP通信案例源码:调用动态链接库进行数据读写,定时器与计数器数据区的简洁读写操作示例,C#与VB实现欧姆龙PLC的Fins TCP通信案例源码:调用动态链接库进

    C#与VB实现欧姆龙PLC的Fins TCP通信案例源码:调用动态链接库进行数据读写,定时器与计数器数据区的简洁读写操作示例,C#与VB实现欧姆龙PLC的Fins TCP通信案例源码:调用动态链接库进行读写操作,涵盖定时器计数器数据区学习案例,C#欧姆龙plc Fins Tcp通信案例上位机源码,有c#和VB的Demo,c#上位机和欧姆龙plc通讯案例源码,调用动态链接库,可以实现上位机的数据连接,可以简单实现D区W区定时器计数器等数据区的读写,是一个非常好的学习案例 ,C#; 欧姆龙PLC; Fins Tcp通信; 上位机源码; 动态链接库; 数据连接; D区W区读写; 定时器计数器; 学习案例,C#实现欧姆龙PLC Fins Tcp通信上位机源码,读写数据区高效学习案例

    可调谐石墨烯超材料吸收体的FDTD仿真模拟研究报告:吸收光谱的化学势调节策略与仿真源文件解析,可调谐石墨烯超材料吸收体:化学势调节光谱的FDTD仿真模拟研究,可调谐石墨烯超材料吸收体FDTD仿真模拟

    可调谐石墨烯超材料吸收体的FDTD仿真模拟研究报告:吸收光谱的化学势调节策略与仿真源文件解析,可调谐石墨烯超材料吸收体:化学势调节光谱的FDTD仿真模拟研究,可调谐石墨烯超材料吸收体FDTD仿真模拟 【案例内容】该案例提供了一种可调谐石墨烯超材料吸收体,其吸收光谱可以通过改变施加于石墨烯的化学势来进行调节。 【案例文件】仿真源文件 ,可调谐石墨烯超材料吸收体; FDTD仿真模拟; 化学势调节; 仿真源文件,石墨烯超材料吸收体:FDTD仿真调节吸收光谱案例解析

    RBF神经网络控制仿真-第二版

    RBF神经网络控制仿真-第二版

    松下PLC与威纶通触摸屏转盘设备控制:FPWINPRO7与EBPRO智能编程与宏指令应用,松下PLC与威纶通触摸屏转盘设备控制解决方案:FPWINPRO7与EBPRO协同工作,实现多工位转盘加工与IE

    松下PLC与威纶通触摸屏转盘设备控制:FPWINPRO7与EBPRO智能编程与宏指令应用,松下PLC与威纶通触摸屏转盘设备控制解决方案:FPWINPRO7与EBPRO协同工作,实现多工位转盘加工与IEC编程模式控制,松下PLC+威纶通触摸屏的转盘设备 松下PLC工程使用程序版本为FPWINPRO7 7.6.0.0版本 威纶通HMI工程使用程序版本为EBPRO 6.07.02.410S 1.多工位转盘加工控制。 2.国际标准IEC编程模式。 3.触摸屏宏指令应用控制。 ,松下PLC; 威纶通触摸屏; 转盘设备控制; 多工位加工控制; IEC编程模式; 触摸屏宏指令应用,松下PLC与威纶通HMI联控的转盘设备控制程序解析

    基于循环神经网络(RNN)的多输入单输出预测模型(适用于时间序列预测与回归分析,需Matlab 2021及以上版本),基于循环神经网络(RNN)的多输入单输出预测模型(matlab版本2021+),真

    基于循环神经网络(RNN)的多输入单输出预测模型(适用于时间序列预测与回归分析,需Matlab 2021及以上版本),基于循环神经网络(RNN)的多输入单输出预测模型(matlab版本2021+),真实值与预测值对比,多种评价指标与线性拟合展示。,RNN预测模型做多输入单输出预测模型,直接替数据就可以用。 程序语言是matlab,需求最低版本为2021及以上。 程序可以出真实值和预测值对比图,线性拟合图,可打印多种评价指标。 PS:以下效果图为测试数据的效果图,主要目的是为了显示程序运行可以出的结果图,具体预测效果以个人的具体数据为准。 2.由于每个人的数据都是独一无二的,因此无法做到可以任何人的数据直接替就可以得到自己满意的效果。 这段程序主要是一个基于循环神经网络(RNN)的预测模型。它的应用领域可以是时间序列预测、回归分析等。下面我将对程序的运行过程进行详细解释和分析。 首先,程序开始时清空环境变量、关闭图窗、清空变量和命令行。然后,通过xlsread函数导入数据,其中'数据的输入'和'数据的输出'是两个Excel文件的文件名。 接下来,程序对数据进行归一化处理。首先使用ma

    【图像识别】手写文字识别研究 附Matlab代码+运行结果.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    旅游管理系统(基于springboot,mysql,java).zip

    旅游管理系统中的功能模块主要是实现管理员;首页、个人中心、用户管理、旅游方案管理、旅游购买管理、系统管理,用户;首页、个人中心、旅游方案管理、旅游购买管理、我的收藏管理。前台首页;首页、旅游方案、旅游资讯、个人中心、后台管理等功能。经过认真细致的研究,精心准备和规划,最后测试成功,系统可以正常使用。分析功能调整与旅游管理系统实现的实际需求相结合,讨论了Java开发旅游管理系统的使用。 从上面的描述中可以基本可以实现软件的功能: 1、开发实现旅游管理系统的整个系统程序;  2、管理员;首页、个人中心、用户管理、旅游方案管理、旅游购买管理、系统管理等。 3、用户:首页、个人中心、旅游方案管理、旅游购买管理、我的收藏管理。 4、前台首页:首页、旅游方案、旅游资讯、个人中心、后台管理等相应操作; 5、基础数据管理:实现系统基本信息的添加、修改及删除等操作,并且根据需求进行交流查看及回复相应操作。

    Boost二级升压光伏并网结构的Simulink建模与MPPT最大功率点追踪:基于功率反馈的扰动观察法调整电压方向研究,Boost二级升压光伏并网结构的Simulink建模与MPPT最大功率点追踪:基

    Boost二级升压光伏并网结构的Simulink建模与MPPT最大功率点追踪:基于功率反馈的扰动观察法调整电压方向研究,Boost二级升压光伏并网结构的Simulink建模与MPPT最大功率点追踪:基于功率反馈的扰动观察法调整电压方向研究,Boost二级升压光伏并网结构,Simulink建模,MPPT最大功率点追踪,扰动观察法采用功率反馈方式,若ΔP>0,说明电压调整的方向正确,可以继续按原方向进行“干扰”;若ΔP<0,说明电压调整的方向错误,需要对“干扰”的方向进行改变。 ,Boost升压;光伏并网结构;Simulink建模;MPPT最大功率点追踪;扰动观察法;功率反馈;电压调整方向。,光伏并网结构中Boost升压MPPT控制策略的Simulink建模与功率反馈扰动观察法

    基于matlab平台的图像去雾设计.zip

    运行GUI版本,可二开

    Deepseek相关参考资源文档

    Deepseek相关主题资源及行业影响

    WP Smush Pro3.16.12 一款专为 WordPress 网站设计的图像优化插件开心版.zip

    WP Smush Pro 是一款专为 WordPress 网站设计的图像优化插件。 一、主要作用 图像压缩 它能够在不影响图像质量的前提下,大幅度减小图像文件的大小。例如,对于一些高分辨率的产品图片或者风景照片,它可以通过先进的压缩算法,去除图像中多余的数据。通常 JPEG 格式的图像经过压缩后,文件大小可以减少 40% – 70% 左右。这对于网站性能优化非常关键,因为较小的图像文件可以加快网站的加载速度。 该插件支持多种图像格式的压缩,包括 JPEG、PNG 和 GIF。对于 PNG 图像,它可以在保留透明度等关键特性的同时,有效地减小文件尺寸。对于 GIF 图像,也能在一定程度上优化文件大小,减少动画 GIF 的加载时间。 懒加载 WP Smush Pro 实现了图像懒加载功能。懒加载是一种延迟加载图像的技术,当用户滚动页面到包含图像的位置时,图像才会加载。这样可以避免一次性加载大量图像,尤其是在页面内容较多且包含许多图像的情况下。例如,在一个新闻网站的长文章页面,带有大量配图,懒加载可以让用户在浏览文章开头部分时,不需要等待所有图片加载,从而提高页面的初始加载速度,同时也能

    1. Download this file: https://cdn-media.huggingface.co/frpc-gradio-0.3/frpc-windows-amd64.exe

    Could not create share link. Missing file: C:\Users\xx\.conda\envs\omni\Lib\site-packages\gradio\frpc_windows_amd64_v0.3 1. Download this file: https://cdn-media.huggingface.co/frpc-gradio-0.3/frpc_windows_amd64.exe 2. Rename the downloaded file to: frpc_windows_amd64_v0.3 3. Move the file to this location: C:\Users\xx\.conda\envs\omni\Lib\site-packages\gradio

Global site tag (gtag.js) - Google Analytics