微软在GitHub上开源计算器:一夜爆火,获得5000星

嵌入式ARM 2019-03-08 17:08

来源:机器之心、快科技、infoQ,有删改


昨天,微软在 MIT License 下开源了一个 GitHub 项目——Windows 计算器,短短 24 小时内就获得了接近 5000 颗星,并引发大量讨论。这个项目爆红的速度可能连微软自己都始料未及。科技媒体 The Verge 评价道,「虽然计算器只是 Windows 的一个很小的部分,但开源计算器这一事件延续了微软近年来拥抱开源的作风。」


据美国科技媒体The Verge报道称,微软此举的目的是希望“与社区合作打造更好的用户体验。”开放“计算器”源代码意味着,任何人都可以贡献代码来改进这款应用。但微软希望在开始部署或审查代码之前,先评估这些新功能的原型或用户界面的变化。


目前,“计算器”的源代码已经上传到GitHub上,包括构建系统、单元测试,甚至还有Windows中“计算器”功能的产品路线图。虽然“计算器”是Windows的一个相对较小的部分,但此举代表着微软拥抱开源计划的重要一步。


另外,微软的“计算器”源代码将帮助Windows开发人员更轻松地将“计算器”集成到自己的应用程序中。


微软去年6月宣布,将以价值75亿美元的股票收购GitHub,开启“开源的敌人”这一称号的洗白之路。GitHub是全球领先的软件开发平台,拥有2800多万开发者用户。


  • 开源地址:https://github.com/Microsoft/calculator


此次开源的目的是想要「与社区一道打造更好的用户体验」。开源计算器意味着任何人都可以为改善这一 app 贡献代码,但微软会在实现新的功能原型、用户界面变动之前对它们进行评估或者审核代码。


这次开源的代码包括构建系统、单元测试,甚至 Windows 计算器功能的产品路线图。近年来,微软一改保守的作风,拥抱开源。此前,微软甚至开源了 90 年代原始文件管理器的源代码,允许它在 Windows 10 上运行。去年 10 月,微软宣布正式加入开放创新网络(OIN),向所有开源专利联盟的成员开放其专利组合。这意味着微软旗下的 60000 多项专利免费开放给 Linux 系统,帮助 Linux 的发展。



此次开源有助于 Windows 开发者更轻松地将计算器 logic 或 UI 整合到自己的 app 中,开发者还能报告并修复 bug,参与和 Windows 计算器未来有关的讨论,并帮助微软的工程师设计、构建该 app。微软表示 review Windows 计算器的代码将有助于开发者了解微软的最新技术,如 Universal Windows Platform、XAML 和 Azure Pipelines;了解微软的完整开发生命周期;重用这些代码来构建自己的项目。


以下为该开源项目的详细信息。


关于 Windows 计算器


Windows Calculator app 是使用 C++ 写成的现代 Windows app,预安装在 Windows 中。这款 app 提供标准型、科学型和程序员计算器功能,以及不同度量单位和货币之间的转换。


该计算器定期更新功能、修复 bug。用户可在 Microsoft Store 下载最新版本。


功能


具体来讲,Windows 计算器具备以下功能:


  • 标准计算器功能:提供基础运算,评估用户输入的命令。

  • 科学计算器功能:提供扩展运算,使用运算顺序评估命令。

  • 程序员计算器功能:为开发者提供常见的数学运算,如进制转换。

  • 计算历史和记忆能力。

  • 不同度量单位之间的转换功能。

  • 基于从 Bing 检索到的数据进行货币转换。


启动项目


Windows 计算器的 GitHub 页面介绍了启动该项目的大概流程。


依赖项


  • 计算机必须运行 Windows 10 1803 版本或更新版本。

  • 安装 Visual Studio 最新版

  • 安装「Universal Windows Platform Development」workload

  • 安装可选组件「C++ Universal Windows Platform tools」

  • 安装最新版 Windows 10 SDK



  • 安装 Visual Studio 扩展 XAML Styler 

  • 获取项目代码:


git clone https://github.com/Microsoft/calculator.git


在 Visual Studio 中打开 src\Calculator.sln,以构建和运行 Windows 计算器 app

Windows 计算器项目架构的通用描述,参见 ApplicationArchitecture.md


此外,微软开源了 Windows 计算器的路线图,详见:https://github.com/Microsoft/calculator/blob/master/docs/Roadmap.md


沸腾的群众


Windows 开源计算器的事件很快就在社交网络上引发了一股风潮,人们纷纷登陆 GitHub 开始尝试。查看计算器代码显然是了解最新微软技术(如通用 Windows 平台、XAML 和 Azure)的好主意。也有人呼吁微软开源更多程序的代码,目前呼声最高的是「纸牌」程序。


开源一个软件可以帮助微软通过社区的力量解决一些问题。在 Reddit 上,有眼尖的网友发现了 Windows 10 上计算器的一个 Bug:



一个像素没有对齐。看起来 Issue 提交了之后,这个问题就会在 2019 年第一季度的 Windows 10 四月更新中解决了


GitHub上那些爆火的微软开源软件


Visual Studio Code:跨平台源代码编辑器


Visual Studio Code是微软于2015年正式发布的项目,可以运行在Mac OS X、Windows和Linux之上,面向Web和云应用的一款跨平台源代码编辑器。


虽然它的名字与Visual Studio相近,但前者是代码编辑器,后者是集成开发环境(IDE)并且目前只运行在Windows上。


Star数量: 24.3k;  Fork数量:3.3k


GitHub主页:https://github.com/Microsoft/vscode


TypeScript:开源编程语言,JavaScript的超集


TypeScript是JavaScript强类型的超集,可以编译成纯JavaScript。由微软开发的自由和开源的编程语言,可以运行在各类浏览器和操作系统之上。


Star数量: 19.8k ;Fork数量:2.8k


GitHub主页:https://github.com/Microsoft/TypeScript/


CNTK: 深度学习开源工具包


CNTK全称为The Microsoft Cognitive Toolkit, 将神经网络描述为计算机可处理的有向图,有向图的叶节点表示输入值或网络参数,其他节点表示输入对应的矩阵运算。CNTK便于实现并且也结合了很多深度神经网络(DNN),神经网络(CNN)和循环神经网络/长短时记忆神经网络(RNN / LSTM)。它可以跨多个GPU和服务器实现随机梯度下降(SGD,误差反向传播)学习与自动微分和并行化。


可以在Python或者C++语言中如同库版应用,也可以使用其自有的描述语言BrainScript单机化使用。CNTK可适用于64位的Linux和Window,于2015年4月开源。


下图比较CNTK的处理速度(每秒处理的帧数)与四个其他众所周知的工具包的处理速度。 配置使用完全连接的4层神经网络(参见微软的基准脚本)和有效的迷你批量大小(8192)。在相同硬件上获得的结果。


Star数量:9.9k;Fork数量:2.4k


GitHub地址:https://github.com/Microsoft/CNTK


Donnet:采用系统虚拟机运行的编程平台


.NET最早是微软研发的XML Web services平台,C#是.NET框架上最常用的编程语言之一,通常被认为是微软专属, 其著名竞争对手是Java。


.NET框架历经数代更迭,现已演变成通用的开发平台,支持多种语言(如C#、F#、VB.Net、C++、Python等)、异步和同步编程模型,具有本地互操作性,可跨平台实现多种场景,最终于2014年开源。


Star数量: 7.8k ;Fork数量:1.2k


GitHub主页:https://github.com/Microsoft/dotnet/network


PowerShell :为任何系统提供Windows的命令行工具


一个跨平台(Windows、Linux和macOS)自动化和配置工具/框架,可与现有工具完美配合,并优化用于处理结构化数据(例如JSON,CSV,XML等)、REST API 和对象模型。 它包括命令行shell,相关的脚本语言和用于处理cmdlet的框架。


Star数量:6.4k;Fork数量:800


GitHub地址:https://github.com/PowerShell/PowerShell


MSOpenTech/redis: 在Windows使用Redis


官方只支持64位,可自行构建32位版。


该开源项目,在2.8版本中,替代UNIX fork()API中的内存映射文件模拟写时复制行为。 版本3.0类似,为了便于系统文件分页,删除了内存映射文件,在管理堆碎片方面进行了改进。


Redis对文件描述符的值做了一些假设,微软构建了一个虚拟文件描述符映射层。


Star数量:5.8k;Fork数量:8.7k


GitHub地址:https://github.com/MSOpenTech/redis


WinObjc:Windows下的Objective-C


为Visual Studio提供了一个Objective-C开发环境并支持iOS API。通过重新使用Objective-C代码和iOS API,配以Windows自有Cortana(中文名:微软小娜,微软发布的全球第一款个人智能助理)和通知等功能,用户可以创建通用Windows平台(UWP)应用程序并运行在Windows设备上。


Star数量:5.8k;Fork数量:745


GitHub地址:https://github.com/Microsoft/WinObjC

GitHub地址:https://github.com/Microsoft/api-guidelines



ASP.NET之MVC核:模型(model)-视图(view)-控制器(controller)框架旨在TDD友好,用于创建符合最新Web标准的复杂应用程序、构建动态网站,可以在IIS中托管或自我托管。


Star数量:4.4k;Fork数量:1.6k


GitHub地址:https://github.com/aspnet/Mvc


BashOnWindows:解决Ubuntu Bash在Windows的使用问题


微软在Build 2016大会上宣布了一条振奋人心的消息,大家惊呼Ubuntu on Windows。Bash on Windows 为开发者们提供了Bash shell、Linux类似环境,在不需要Linux虚拟机的情况下,大部分的Linux命令行工具基本上可以不经修改地运行在Windows上。


Star数量:3.7k;Fork数量: 129


GitHub地址:https://github.com/Microsoft/BashOnWindows


monaco-editor:基于浏览器的代码编辑器


与 Visual Studio Code 类似,Monaco Editor 提供代码提示、智能建议等代码编辑器的功能,它运行在浏览器环境中,旨在开发人员们可以远程更方便地编写代码。与Visual Studio Code版本相比,Monaco是一个直接映射源代码的库。           


Star数量: 4k;Fork数量:265


GitHub地址:https://github.com/Microsoft/monaco-editor


DMTK:分布式机器学习框架


微软的DMTK(Distributed Machine Learning Toolkit)参数服务器框架有很多版本:


LightLDA:用于大规模主题建模的可扩展、快速和轻量级系统。


LightGBM:基于决策树算法的快速、分布式、高性能梯度提升(GBDT,GBRT,GBM或MART)框架,用于排名、分类和许多其他机器学习任务。


分布式词嵌入(word embedding):实现的词嵌入的分布式算法。


DMTK framework(Multiverso): 参数服务器架构的机器学习。


Star数量: 2k;Fork数量:487


GitHub地址:https://github.com/Microsoft/DMTK


Azure相关:文档、SDK和代码示例


微软支持开发者们将各种开源软件工具和技术带入Azure。Azure 应用市场支持很多Linux 分发,包括 Ubuntu、Debian 和 SUSE;也支持借助支持 Node.js、PHP、Python 和 Java 的 Azure 应用服务,生成 Web 和移动应用。


在GitHub上Azure相关的存储库有1700+个。


Star数量(共计):149k;Fork数量(共计):291k


地址:https://azure.microsoft.com/zh-cn/overview/open-source/



参考内容:

https://www.theverge.com/2019/3/6/18253474/microsoft-windows-calculator-open-source-github


微软已然成为GitHub贡献最大公司之一

嵌入式ARM 关注这个时代最火的嵌入式ARM,你想知道的都在这里。
评论
  • 随着数字化的不断推进,LED显示屏行业对4K、8K等超高清画质的需求日益提升。与此同时,Mini及Micro LED技术的日益成熟,推动了间距小于1.2 Pitch的Mini、Micro LED显示屏的快速发展。这类显示屏不仅画质卓越,而且尺寸适中,通常在110至1000英寸之间,非常适合应用于电影院、监控中心、大型会议、以及电影拍摄等多种室内场景。鉴于室内LED显示屏与用户距离较近,因此对于噪音控制、体积小型化、冗余备份能力及电气安全性的要求尤为严格。为满足这一市场需求,开关电源技术推出了专为
    晶台光耦 2025-01-13 10:42 444浏览
  • 在不断发展的电子元件领域,继电器——作为切换电路的关键设备,正在经历前所未有的技术变革。固态继电器(SSR)和机械继电器之间的争论由来已久。然而,从未来发展的角度来看,固态继电器正逐渐占据上风。本文将从耐用性、速度和能效三个方面,全面剖析固态继电器为何更具优势,并探讨其在行业中的应用与发展趋势。1. 耐用性:经久耐用的设计机械继电器:机械继电器依靠物理触点完成电路切换。然而,随着时间的推移,这些触点因电弧、氧化和材料老化而逐渐磨损,导致其使用寿命有限。因此,它们更适合低频或对切换耐久性要求不高的
    腾恩科技-彭工 2025-01-10 16:15 85浏览
  • 根据Global Info Research(环洋市场咨询)项目团队最新调研,预计2030年全球无人机电池和电源产值达到2834百万美元,2024-2030年期间年复合增长率CAGR为10.1%。 无人机电池是为无人机提供动力并使其飞行的关键。无人机使用的电池类型因无人机的大小和型号而异。一些常见的无人机电池类型包括锂聚合物(LiPo)电池、锂离子电池和镍氢(NiMH)电池。锂聚合物电池是最常用的无人机电池类型,因为其能量密度高、设计轻巧。这些电池以输出功率大、飞行时间长而著称。不过,它们需要
    GIRtina 2025-01-13 10:49 139浏览
  • PNT、GNSS、GPS均是卫星定位和导航相关领域中的常见缩写词,他们经常会被用到,且在很多情况下会被等同使用或替换使用。我们会把定位导航功能测试叫做PNT性能测试,也会叫做GNSS性能测试。我们会把定位导航终端叫做GNSS模块,也会叫做GPS模块。但是实际上他们之间是有一些重要的区别。伴随着技术发展与越发深入,我们有必要对这三个词汇做以清晰的区分。一、什么是GPS?GPS是Global Positioning System(全球定位系统)的缩写,它是美国建立的全球卫星定位导航系统,是GNSS概
    德思特测试测量 2025-01-13 15:42 427浏览
  • 01. 什么是过程能力分析?过程能力研究利用生产过程中初始一批产品的数据,预测制造过程是否能够稳定地生产符合规格的产品。可以把它想象成一种预测。通过历史数据的分析,推断未来是否可以依赖该工艺持续生产高质量产品。客户可能会要求将过程能力研究作为生产件批准程序 (PPAP) 的一部分。这是为了确保制造过程能够持续稳定地生产合格的产品。02. 基本概念在定义制造过程时,目标是确保生产的零件符合上下规格限 (USL 和 LSL)。过程能力衡量制造过程能多大程度上稳定地生产符合规格的产品。核心概念很简单:
    优思学院 2025-01-12 15:43 459浏览
  •   在信号处理过程中,由于信号的时域截断会导致频谱扩展泄露现象。那么导致频谱泄露发生的根本原因是什么?又该采取什么样的改善方法。本文以ADC性能指标的测试场景为例,探讨了对ADC的输出结果进行非周期截断所带来的影响及问题总结。 两个点   为了更好的分析或处理信号,实际应用时需要从频域而非时域的角度观察原信号。但物理意义上只能直接获取信号的时域信息,为了得到信号的频域信息需要利用傅里叶变换这个工具计算出原信号的频谱函数。但对于计算机来说实现这种计算需要面对两个问题: 1.
    TIAN301 2025-01-14 14:15 53浏览
  • 新年伊始,又到了对去年做总结,对今年做展望的时刻 不知道你在2024年初立的Flag都实现了吗? 2025年对自己又有什么新的期待呢? 2024年注定是不平凡的一年, 一年里我测评了50余块开发板, 写出了很多科普文章, 从一个小小的工作室成长为科工公司。 展望2025年, 中国香河英茂科工, 会继续深耕于,具身机器人、飞行器、物联网等方面的研发, 我觉得,要向未来学习未来, 未来是什么? 是掌握在孩子们生活中的发现,和精历, 把最好的技术带给孩子,
    丙丁先生 2025-01-11 11:35 417浏览
  • 流量传感器是实现对燃气、废气、生活用水、污水、冷却液、石油等各种流体流量精准计量的关键手段。但随着工业自动化、数字化、智能化与低碳化进程的不断加速,采用传统机械式检测方式的流量传感器已不能满足当代流体计量行业对于测量精度、测量范围、使用寿命与维护成本等方面的精细需求。流量传感器的应用场景(部分)超声波流量传感器,是一种利用超声波技术测量流体流量的新型传感器,其主要通过发射超声波信号并接收反射回来的信号,根据超声波在流体中传播的时间、幅度或相位变化等参数,间接计算流体的流量,具有非侵入式测量、高精
    华普微HOPERF 2025-01-13 14:18 427浏览
  • ARMv8-A是ARM公司为满足新需求而重新设计的一个架构,是近20年来ARM架构变动最大的一次。以下是对ARMv8-A的详细介绍: 1. 背景介绍    ARM公司最初并未涉足PC市场,其产品主要针对功耗敏感的移动设备。     随着技术的发展和市场需求的变化,ARM开始扩展到企业设备、服务器等领域,这要求其架构能够支持更大的内存和更复杂的计算任务。 2. 架构特点    ARMv8-A引入了Execution State(执行状
    丙丁先生 2025-01-12 10:30 415浏览
  • 随着通信技术的迅速发展,现代通信设备需要更高效、可靠且紧凑的解决方案来应对日益复杂的系统。中国自主研发和制造的国产接口芯片,正逐渐成为通信设备(从5G基站到工业通信模块)中的重要基石。这些芯片凭借卓越性能、成本效益及灵活性,满足了现代通信基础设施的多样化需求。 1. 接口芯片在通信设备中的关键作用接口芯片作为数据交互的桥梁,是通信设备中不可或缺的核心组件。它们在设备内的各种子系统之间实现无缝数据传输,支持高速数据交换、协议转换和信号调节等功能。无论是5G基站中的数据处理,还是物联网网关
    克里雅半导体科技 2025-01-10 16:20 415浏览
  • 随着全球向绿色能源转型的加速,对高效、可靠和环保元件的需求从未如此强烈。在这种背景下,国产固态继电器(SSR)在实现太阳能逆变器、风力涡轮机和储能系统等关键技术方面发挥着关键作用。本文探讨了绿色能源系统背景下中国固态继电器行业的前景,并强调了2025年的前景。 1.对绿色能源解决方案日益增长的需求绿色能源系统依靠先进的电源管理技术来最大限度地提高效率并最大限度地减少损失。固态继电器以其耐用性、快速开关速度和抗机械磨损而闻名,正日益成为传统机电继电器的首选。可再生能源(尤其是太阳能和风能
    克里雅半导体科技 2025-01-10 16:18 317浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦