专访孙辉:大学数学系副教授挑战软件开发禁地(下)

论文笔记 -- Tangram: Optimized Coarse-Grained Dataflow for Scalable NN Accelerators 目录 Tangram: Optimized Coarse-Grained Dataflow for Scalable NN Accelerators 1.Abstract 2.Introduction 4.Baseline Architecture and Its Inefciencies... 阅读详情
Tangram挑战软件禁地 构思插件体系引擎

上一篇我们分享了 孙辉 老师深厚的软件开发经历,接下来我们就要进入Tangram,在这里面一起细细体会这些年 孙辉 老师对软件的理解和心血。

现在Tangram的开源部分有两个版本,一是Tangram的开源版本,另外一个是Tangram的Lite版本,其中都包含了许多很实用的开发技术,当然,开源部分是整个Tangram框架的一个子集。那么Tangram到底是一个什么样的项目?从字面上看,Tangram是 中国古代的游戏“七巧板”,这是典型的古代中国的朴素思维方式,即“以有限驾驭无限”的基本构想,中国古代的先哲们很早就有“金、木、水、火、土”繁衍世 界的认识,无论是“金、木、水、火、土”繁衍世界,还是“七巧板”,都是体现一种构造哲学的设想,另外一个类比可能是门捷列夫的元素周期表,通过这个周期 表,人们看到复杂世界的简单的一面。

Tangram的基本出发点是,通过COM、.NET组件形成的一个“基”,按照一个组合法则,形成一个“公共组件资源空间”,这个空间的成员是由有限个“COM、或.NET”组件形成的一个组合体。我们希望“公共组件资源空间”能够成为相当大的一类软件的公共基础,这意味着,这类软件支持“公共组件资源空间”中的每一个元素。

产生开发Tangram项目想法源于多年的实际开发经验,对技术、项目的积累达到了一个阶段之后我觉得软件系统的不可回避的一个问题是软件系统具备“不完备性”,因此,Tangram最主要的用途是对这种不完备性的一个有效的补充。因为Tangram最突出的特征就是实现了一个灵活的软件插件引擎,csdn的 韩磊 先生曾经建议将其命名为“逆向插件体系”,我觉得这是一个有趣的建议。

Tangram的思路是作为一个“插件体系”的引擎,是一个十分值得期待的新颖的软件构思。Tangram框架的目标就是开发满足上述描述条件的软件系统,目前,Tangram支持的“公共组件资源空间”是由“COM控件、.NET控件以及C++ View”对象作为原子生成的组合体形成的集合。

Tangram for IE是Tangram的第一个示范性的产品,作为这个产品的结果,Internet Explorer将产生任意多个定制化的框架,每个框架都相当于一个“第三方”浏览器,如下图:


图1:Tangram for IE,在IE框架中直接架构自己的软件框架

未来的规划是我们希望Tangram可以自然的与主流商业软件进行“桥接”,例如,Tangram框架与Office结合,作为一个概念图,我们可以给出一个实验阶段的运行截图:


图2:Tangram 与Excel结合,使得业务软件框架直接架构在Excel基础之上

另外一个概念性质的截图是Tangram与Eclipse的结合:

图3:Eclipse中的Tangram,图中兰色加亮的标签窗体中的框架结构来自Tangram

通过这些年来对于MFC的了解, 孙辉 老师个人坚持认为MFC很难在近几年内被淘汰。他说作为一个严肃的C++开发者,对MFC提出批评的时候,一定是需要很熟悉MFC的,否则批评就一定是苍白的。

很多人都认为WTL是很优秀的产品,但Microsoft始终不给其正规产品的定位,这一点很说明问题。许多开发者在没有深刻认识的前提下批评MFC是一种浮躁的表现,几年前 孙辉 老师曾经在优快云论坛中发过关于MFC方面的一个帖子,当时许多朋友都参与了探讨MFC的各个方面,从许多方面看,MFC都是一个禁得起推敲的框架,大而臃肿是每个框架发展到一个阶段都必须面对的问题,作为一个研究课题, 孙辉 老师说:“MFC的批评者或许是MFC框架的最大受益者。”

“我觉得,无论你是否喜欢,在Microsoft平台上用C++开发,至少应该批判的学习MFC,我接触过一些自己写框架的开发者,他们觉得自己的东西可以替代MFC,大部分的作品我觉得经不起推敲,经得起推敲的应该是那些熟悉MFC的作者的作品。.NET框架的类库结构可以看出许多与MFC相似的思路,这也很说明问题。”

如果要问“基于MFC编程认识到哪一点是最重要的” ?我觉得MFC的思想方法是十分重要的,著名的QT框架的许多想法就是从MFC框架借鉴而来的,很早的时候,许多人用Borland的C++类库与MFC比较,说MFC如何拙劣,但MFC现在还健在,但OWL已经消失了,面对一个经典的框架,本来就基础薄弱的我们,为什么有时间品评MFC的优劣,而不进行深入的学习呢?

我想对Windows平台下的C++开发者说的是,如果你真的讨厌MFC,那么你应该耐心的了解这个东西,直到找出MFC令你讨厌的地方,如此,你才能够更上一层楼。

在Tangram中的每一行代码,都是 孙辉 老师经历的见证。在对Tangram做不断完善的过程中, 孙辉 老师意识到了仅仅有技术是无法成就一个产品的。通过交流其实有很多朋友都影响过Tangram这个技术框架。 孙辉 老师特别提到了优快云的 袁德俊 先生,他的设想使Tangram框架中加入了IE插件的构造能力,在与哈尔滨的 曲春雨 先生的交流中形成了Tangram框架中灵活、自由的IE扩展框架, Tangram for IE最后的技术框架的确定与优快云的 蒋涛 先生、 韩磊 先生的不断磨合也有着极为密切的关系。

“人不能经历所有的事情,即使你具备相关的能力,但客观的环境会让你根本无法知道你更适合做什么,在不断的交流中,我捕捉到种种思考点进而促使Tangram不断的丰满。” 孙辉 老师这样心存感激的说道,

“我的教育背景也是产生 Tangram 项目的另外一个关键因素, Tangram 技术构思是开发者的盲点,其中的技术技巧不是关键的因素,构思点是关键的原因,我觉得形成 Tangram 的基本想法的重要因素之一是我是基础数学科班出身的背景。究其本质而言, Tangram 更像一个数学问题,只不过是用 C++ 解决的。”(全文完)
基于炬芯ATS308X平台的MFCC-HMM隐马尔科夫模型语音识别算法实现 本文介绍ATS3089P开发板的UART自动烧录与普通重启机制,基于v1.4全自动工具实现。默认勾选“手动验证”不启用,点击“自动烧录.fw”后,上位机在收到PLEASEREBOOTDEVICE提示时自动发送普通复位,无需人工干预。系统通过跟踪COM11下载、校验及应用启动状态,确保完整流程成功。固件使用appflash_rebootnormal5000指令,支持独立普通重启,仅需连接CDC端口。工具具备源码身份校验与版本一致性检查,防止旧窗口误操作。实测验证通过,结果为success=true、flash 阅读详情

相关推荐

应用程序向导

应用程序向导  何志丹            使用应用程序向导可以快速生成程序框架。选择菜单“File→New”命令,此时会弹出“New”对话框,下面对该对话框中的常用选项进行逐一说明。1.文件(Files)属性页 单击“Files”标签,打开“Files”属性页,如图1-3所示。图1-3  文件属性页文件类型虽然多,但常用的只有两种:C/C++ Header Fi

闻缺陷则喜何志丹 3686

使用Tangram构造你自己的软件开发平台(二)

 使用Tangram构造你自己的软件开发平台(二)孙  辉相关文章:使用Tangram构造你自己的软件开发平台(一)创建第一个MFC CView组件库       Tangram MFC CView组件库是一个COM组件库,其中含有一组MFC CView类对象。首先,在VS 2003IDE新建一个Tangram MFC 组件库,为此,在VS 2003IDE的Wizard管理器中选择Tangram

让您的桌面应用拥有互联网基因 3187

Carla-UE4Editor导入RoadRunner地图文件(保姆级教程)

以Carla官网导入RoadRunner地图的标准文档为参考,里面增添了很多细节和注意事项,遇到问题的小伙伴过来看看吧。

DSK_981029的博客 1万+

专访孙辉:从程序设计不及格到挑战软件开发禁地(上)

相信参加过优快云2007英雄大会,或者关注过这场大会的朋友们一定会对大会第一天的“创业论坛”记忆犹新。在这个创业论坛中请到的各位嘉宾都是有着深厚沉淀的前辈们。循着这次大会的痕迹,我们来到了孙辉老师的面前,孙辉老师曾是大学数学系的副教授,因为对软件开发无限的热情很早便投入对软件开发的研究行列中。对Windows有很深的认识,可以说是见证了整个软件行业在中国迅速发展的全过程。这次我对孙辉老师

马沛专栏 4354

从零配置ORB-SLAM3:TUM-VI数据集yaml文件参数调优指南

本文深入解析了ORB-SLAM3在TUM-VI数据集上的yaml配置文件参数调优方法。针对双目惯性模式,详细拆解了相机标定、IMU噪声模型和ORB特征提取三大模块的关键参数,解释了其原理与影响,并通过实战案例展示了如何通过调整特征点数量、FAST阈值及IMU噪声参数,有效提升系统在低纹理环境下的鲁棒性和轨迹精度。

weixin_29071809的博客 151

MDT部署实战:除了Office,这些“装机必备”软件也能一键静默安装(含静默参数)

本文详细介绍了如何利用Microsoft Deployment Toolkit(MDT)实现企业级软件的静默安装,包括浏览器、开发工具和系统增强工具等“装机必备”软件的部署方案。通过命令行参数和MSI属性,IT运维团队可以高效构建标准化工作环境,提升部署效率并确保版本一致性。文章还提供了安装顺序控制、结果验证和常见问题排错等高级技巧。

weixin_26985923的博客 172

摘抄

  “靠自己个人的力量成功地完成某件事,叫技术;借助他人的力量成功地完成某件事,那叫管理”---李会军掌握技术唯一靠的就是都是踏踏实实地学,不断地在项目中积累。在软件开发这个领域中,不可能有武侠小说中所描述的那样突然一次奇遇,一下就变成了一个绝顶高手,做技术是有一个长期的沉淀和积累的过程,唯有此才能很好地掌握一门技术或者工具。孙辉老师说:“MFC的批评者或许是MFC框架的最大受益者。”

断水断电的专栏 483

数据分析——员工离职预测

员工离职预测一. 题目描述二. 数据说明三. 步骤实现1.导入并查看2.数据探索性分析3.数据处理4.模型分析5.结果分析(1) 可视化的结果分析(2)特征选择结果分析(3)多模型交叉验证结果分析 一. 题目描述 员工是否准备离职是困扰用人单位的问题,其关系到单位业务的开展及新人员的招聘,及时的分析出有离职倾向的员工成为关键的因素。数据主要包括影响员工离职的各种因素(工资、出差、工作环境满意度、工作投入度、是否加班、是否升职、工资提升比例等)以及员工是否已经离职的对应记录。 二. 数据说明 数据分为训练数据

weixin_43925467的博客 1万+

暴雨讲堂:算力高速互联催化超节点开启AI新篇章

通过这种技术,GPU之间的通信从传统的点对点互联模式转向交换互联模式,显著提升了单机的扩展性和通信带宽,突破单机8卡的限制。在AI技术变革的浪潮中,暴雨信息凭借其在智算和网络领域的创新技术,正加速推动AI技术在各行业的应用落地。在此背景下,探索如何在超大规模智算集群中实现GPU之间的高速互联,从而显著提高GPU的利用率,已成为行业面临的重要挑战。当前,GPU互联私有总线协议的封闭性已成为多厂家芯片兼容的主要障碍,限制了硬件系统的扩展性,并增加了技术升级和维护的难度。

BAOYUCompany的博客 664

软件工程大作业——图书管理系统/图书个性化推荐与实现系统

软件工程期末大作业,图书管理系统,包含ER图、程序流程图、属性图、结构图

2401_82857325的博客 3648

Agisoft Metashape相机标定笔记

使用Metashape进行自动相机标定是可能的。(可选:使用打印的棋盘格图案,但需保证它是平坦的且单元格是正方形)。相机标定步骤支持全相机标定矩阵的估计,包含非线性的畸变参数。相机模型的细节请参照附录D——相机模型板块。:在通用的工作流程中,相机标定步骤可以跳过。因为Metashape会在图像定向过程中进行相机自标定。但是,如果定向结果不稳定,例如,由于影像之间缺乏连接点,额外进行单独的相机标定步骤也许是有用的。

天桥飞熊的博客 3974

苹果核 - 页面动态化的基础 —— Tangram

12月10日在SFDC(SegmentFault Developer Conference)大会上初次介绍了手机天猫的Tangram方案,现场时间有限,讲得匆忙,特此整理记录。这篇内容是Tangram的整体介绍与相关业务开发实践的介绍,后续逐步会将更详细的方案整理成文分享出来。 1. 什么是Tangram顾名思义,Tangram中文名是七巧板的意思,我们希望这个框架提供一系列基本单元,就像积木块一样

JackChan 1856

vrep和matlab,使用Matlab与V-REP联合仿真 - Play V-REP with Matlab

OS: Win10 x64Matlab: R2016bV-REP: V-REP PRO EDU v3.5.0 下载、安装与支持V-REP操作基础V-REP仿真基础Matlab环境准备一个简单的例子对V-REP有一定了解的读者可以直接跳到第三节Matlab环境准备。下载、安装与支持V-REP提供Windows、Linux和MacOS三个平台的应用程序支持,任意平台都提供教育版和专业版两个版本。教育版...

weixin_42660494的博客 3211

[转]Tangram框架应用开发的一般模式

框架其实就是一种开发模式,用tangram框架开发应用程序意味着选择一种面向接口、模块化的开发方式。这和传统的Delphi应用程序开发方式有一定区别,对于刚刚接触框架的童鞋可能不知道如何下手,因此有必要把框架的一般开发方式说明一下。不过框架比较灵活,因此这里仅仅说我的使用经验,如果有更好的方式或建议欢迎大家一起探讨。 1. 应用程序的目录结构 典型的目录结构为,主程序(Host)放一...

weixin_30713953的博客 318

04-协议基础03:USB 2.0信号与电气特性

USB 2.0使用两根差分信号线D+/D-进行数据传输,支持低速(1.5Mbps)、全速(12Mbps)和高速(480Mbps)三种速率。USB总线为主从模式,所有事务由Host发起。端电阻值作用HostRpd(D+)15KΩ±5%下拉,默认低电平HostRpd(D-)15KΩ±5%下拉,默认低电平全速设备Rpu(D+)1.5KΩ±5%上拉到3.3V,标识全速低速设备Rpu(D-)1.5KΩ±5%上拉到3.3V,标识低速USB 2.0硬件要点。

内核笔记 104

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

关于Tangram的可视化设计支持

2007年03月10日 09:37:00 关于Tangram的可视化设计支持 Tangram开源版本是Tangram系列中"最小"的版本,在这个版本中包含了Tangram的最基本的功能点,即软件UI框架的可视化设计。通常,软件开发者都是通过Coding的方式进行软件的框架设计,给定一个如下的UI框架:大多数开发者会如何处理?许多开发者会分析,这个框架窗体包含几个"分页窗

秦梦瑶的专栏 956

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

十年MFC经历认识的Microsoft技术【孙辉 原创】

自从2005年3月8日下午16时“十年MFC经历认识的Microsoft技术”以帖子的方式发表于优快云论坛后,引起了许多网友得好评,使得笔者诚惶诚恐,考虑到该贴过长(人气指数为5000),因此转移到Blog上,许多网友对此帖的评语只好省略,在此鄙人谢过了!为感谢网友的支持,本人希望今后能发出新的帖子以回报网友对我的鼓励,再一次谢谢!初识MFC         我最初知道MFC大概

P2P 研究 思考 2364

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

十年MFC经历认识的Microsoft技术【原创】

十年MFC经历认识的Microsoft技术【原创】孙辉   自从2005年3月8日下午16时“十年MFC经历认识的Microsoft技术”以帖子的方式发表于优快云论坛后,引起了许多网友得好评,使得笔者诚惶诚恐,考虑到该贴过长(人气指数为5000),因此转移到Blog上,许多网友对此帖的评语只好省略,在此鄙人谢过了!为感谢网友的支持,本人希望今后能发出新的帖子以回报网友对我的鼓励,再一次谢谢!初识

让您的桌面应用拥有互联网基因 1万+

百度开源框架Tangram学习之介绍篇

           五一放假,没什么事可做,就决定找点东西学学。刚好,在无意间看到了百度的第一个开源的项目源码发布了,引起了我极大的好奇心,至于javascript之前也有所接触,但是研究不深。所以决定在五一期间,好好学学这个开源的javascript框架Tangram,翻译为中文就是七巧板的意思。呵呵,希望在学习的过程中,真的能体会到七巧板的那种乐趣。       先让大家也看看关于tan

star`blog 3855

Tangram 前端库通过 Github 开源了

Tangram 是百度内部一直在开发和使用的前端库之一,功能与 jQuery 、 Prototype 等库类似,主要功能是简化 DOM 操作,并且扩展 JavaScript 语言。这部分功能准确来说属于 Tangram Core ,另外一个叫做 Tangram Component 的库提供一些类似 YUI 、 Sencha 这个级别的组件。 之前 Tangram 说要开源很...

weixin_34297704的博客 290

优快云专家博客网址

优快云 Blog 所有专家分类:业界软件工程项目管理.NETJAVADelphiC/C++WEB开发数据库移动开发开源游戏开发企业开发工具/产品综合网络管理IT媒体云计算业界蒋涛周筠芮祥麟余平陈荣华baiduforum王煜全英雄本色司纪刚李迎辉孙翯李祖江张建峰邹震韩祝鹏黄晶王杰袁德俊黄庠魁吴莹莹蔺华欧朝晖常政李开复骑士~~~郁郁仔zdl1016邱加永northwolve洪赫sunwangme蛙蛙王子木野狐bisheng_huyejunjian_吴宇泽Gopensolihuazhou陈莉君侯伯薇张大志阿彤廖

junecau的专栏 2万+

量化数据管道实战:从接口调用到生产级落库(第 15 篇):下半场导览与增量水位线设计

daily表建起来了,幂等写入的钥匙(复合主键)也交到了你手上。但真正的生产环境会立刻追问四个问题——数据怎么一直保持最新(增量调度)?不同来源的时间轴怎么对得上(多源对齐)?这套脚本怎么长期跑下去不出事(生产化)?落库还能再快再稳吗(落库进阶)?这就是下半场(第 15–28 篇)要解决的问题。本篇是下半场的主推篇,既是导览也是一篇技术文章给你一张覆盖第 15–28 篇的地图;增量水位线(watermark)设计与幂等写入原则——它决定了"只拉新数、重跑不重"能不能成为整条管道的默认行为;

2601_96840033的博客 1447

MFC 开发 CAD 桌面软件:BCGControlBar Pro 界面组件选型与实践

面向 Windows 且具备 C++/MFC 经验的 CAD 开发团队,梳理 MFC 路线的三个匹配条件,厘清原生 MFC 界面能力与 BCGControlBar Pro 的关系,并按命令组织、工作区布局、参数呈现四类任务说明组件的适用边界与选型方法。

HuiduCADTech的博客 481

从零搭建半导体设备上位机(八):自定义控件(二),阀门控件家族——气体阀、水阀、MFC 阀

自定义控件(二):阀门控件家族——气体阀、水阀、MFC 阀 这是「从零搭建半导体设备上位机」系列第8篇。上一篇讲状态灯,这一篇讲阀门。阀门控件是这套界面里被点得最多的东西,也是最容易出安全事故的地方。 从一条 git 记录说起 翻提交历史,有一条特别短: "添加透明按钮用于点击"——这句话本身就说明出了问题:原来的点击区域不能点了。 事实是:气体阀控件用的是三张素材图(关闭态、打开态、中间态),切

samble的专栏 327
上一篇: 专访孙辉:从程序设计不及格到挑战软件开发禁地(上)
下一篇: 专访XRuby贡献者郑晔:软件开发不是自娱自乐(上)
CTOInsights
博客等级 码龄22年 320粉丝 95原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值