文章类型: 排序方式:
微软发布开源编程语言Bosque
4月21日消息 微软本周发布了新的编程语言Bosque,它是一种追求简洁的开源编程语言。Bosque出自微软计算机科学家Mark Marron之手。Mark Marron表示,Bosque没有遵循传统的结构化编程模型,他认为后者的循环、可变状态和引用等带来了一些复杂性。据介绍,Bosque建立在结构化编程和抽象数据类型的成功基础之上,将现有的编程模型简化为一个规范化的形式,消除了主要的错误来源,简化了代码理解和修改,并将许多自动推理任务转换为细小的命题。Bosque受TypeScript语法、类型,以及ML和Node / JavaScript语义的组合的启发,遵循MIT开源许可,你可以点此前往其GitHub页面进行详细了解。
【IT之家学院】除了能多卖钱,Mesh网络好在哪
Mesh网络最近几年貌似很火,前段时间小米也发布了小米路由器Mesh,性能不错的同时把一对的价格做到了999元,自然又引起了一波抢购热潮。今天咱们来聊聊Mesh网络,是什么,好在哪,怎么用,尽量做到全面而通俗易懂。网络对于现在现代生活的重要性不必多说,移动设备的兴起也让WiFi扮演着越来越重要的角色。对于WiFi人们最看重两个指标,一是覆盖范围,二是网络速率。不管生活还是办公,户型或场景都变得越来越大且复杂,家里的厨房、卫生间、承重墙后等角落经常沦为“WiFi死角”,说明路由器或WiFi系统的覆盖能力还不够。问题存在已久,解决方案当然也有:增强单体路由器的覆盖能力,或者增加路由器的数量。都不完美。首先增强路由器的覆盖能力,也就是提高路由器的发射功率或增加天线数量,本质上还是难以解决大部分情况下WiFi信号衰减的问题,特别对于速率快但穿墙能力差的5G频段来说杯水车薪。那么,增加几台路由器如何呢?很遗憾,增加路由器或AP节点数量实现中继或桥接,信号范围加起来确实能大不少,但网络质量有时会大打折扣,以及对普通用户更加不友好。传统桥接一般为树状或星型拓扑结构,虽结构不同但本质上都是通过上一级路由器实现联网。树状拓扑▲星型拓扑▲这些结构的一大弊端是,某一级路由器/AP断开连接或断网后,其后/下级所有路由器均无法使用。如果采用无线中继,那么路由器之间的通信将占用一定带宽,多层级路由器桥接或主路由连接过多子路由/AP后,延迟和速率将使网络处于几乎不可用状态。传统桥接中的每个路由器/节点都只会按照设置运行,想要改变拓扑结构,必须推倒重来,费时费力。最重要的一点是,即使所有节点的信号共享一个SSID和密码,由于IP地址等区别,这些信号仍是相对独立且不同的,在其范围内的终端设备并不能根据信号强弱、网络质量等自动切换信号,也就无法做到无缝漫游。Mesh网络是什么说了这么多,终于可以引出今天的主角——针对这些痛点,Mesh技术或称Mesh网络“应运而生”。“Mesh网络”中文可称为“网状网络”或“多跳网络”,Mesh路由器产品也被称作分布式路由器。顾名思义,这是一种采用网状拓扑结构的网络,早期产品一般由主路由和子路由/副路由组成,或主路由和中继路由/节点(Point/Node)组成,近期也有一些不分主副路由的产品出现。Mesh网络好在哪Mesh网络被许多用户奉为最强组网方式,有以下优点:设置傻瓜化几乎所有的Mesh路由器产品都有配套的App或图形化管理界面,能做到一键(或很少步骤)组网,自动选择中继频段如2.4GHz或5GHz,一些产品会专门增加一个频段用于路由器间通信;或自动选择不同的中继方式,有线/无线回程、电力中继等。还会给出简单的路由器/节点布局建议,对普通用户极为友好。组网智能化Mesh网络相对于传统桥接的另一大优势在于,组网方式更加灵活、智能。Mesh网络各个路由器/节点会根据物理位置、信号强度、带宽占用、链路容量、网络速率、延迟等因素,自动选择最佳的节点进行连接,组成网状网络。自动组成网状拓扑▲自我修复我们之前提到过,传统桥接网络中,某级路由器失效则其后所有的路由器全部失效,而Mesh网络中当某一路由器/节点因故失效时,与其连接的节点会自动且快速地切换到其他节点,以保证正常的网络连接。无缝漫游Mesh路由器产品大多支持802.11k/v/r标准协议,配合频段切换转向技术,支持协议的设备在所有节点信号范围内移动时,设备会自动连接到网络状况最好的节点,切换过程中可以做到感知上的无缝WiFi漫游(毫秒级),让用户在游戏或网络通话时可以放心地大范围移动,而不用担心网络中断,这也正是Mesh网络相较于传统有线桥接的最大优势。真 · 覆盖范围广由于可以实现无缝漫游,同一Mesh网络下所有节点的所有信号,可以看做同一WiFi信号,其覆盖范围也就是所有节点信号范围的并集。当然,Mesh网络也并不是尽善尽美的:虽然Mesh网络可以根据需要,不断地添加节点来增加覆盖范围,但Mesh网络如果扩展出太多节点,网络质量也会有明显下降。某些产品为了体现“网络的统一性”,“双频合一”,强制将2.4GHz和5GHz频段合并,在一些区域会出现5GHz频段实际网速更快,但强制设备连接到2.4GHz频段的尴尬局面。Mesh产品怎么用Mesh路由器的使用十分便捷:将主路由通电、插网线,设置好网络和WiFi,不分主副路由的产品先设置任一即可;确定路由和节点的物理位置;将副路由/AP节点通电,选择合适的连接方式(有线/无线/电力);根据App提示一键添加节点(真一键)。哪些产品可以选Mesh网络优点很多,市面上Mesh路由器产品也很多,企业级/高性能解决方案的价格略高,家用产品价格尚可接受。如果您的居住/办公环境比较复杂,想入手一套Mesh路由器,选择倒也不少。小米路由器Mesh我们之前提到过的小米路由器Mesh,优点是操作极简单、不分主副路由、支持网口盲插、支持无2.4GHz-5GHz无线-千兆电力线-网线混合组网以及便宜;缺点是强制将两个频段合成一个并未提供设置选项,以及现阶段未必买得到。华硕AiMesh华硕的AiMesh可以说非常良心了,老款路由器升级固件便可以支持AiMesh,为数不多的可以单个买的Mesh路由器,使用时需要设置一个主路由,其余为副路由,型号不必相同。支持型号:RT-AC68P、RT-AC68U、RT-AC68UF、RT-AC68W、RT-AC68R、RT-AC68U V2、RT-AC1900、RT-AC1900P、RT-AC86U、RT-AC2900、RT-AC88U、RT-AC3100、GT-AC5300、RT-AC5300网件奥秘Mini RBK40奥秘Orbi是网件的子品牌,最早做Mesh路由器的厂商之一,口碑一直非常好。产品分主副路由器,会预留出一半的5GHz带宽/速率用以路由器间通信,也就是所谓的“三频路由器”。荣耀分布式路由器入门级的Mesh路由器,价格实惠,一主二副,覆盖范围广。UBIQUITI Amplifi颜值较高,宣称拥有企业级性能,分为路由器和扩展器,路由器间不分主副,但扩展器价格昂贵,几乎与路由器等价。除上述产品,H3C、TP-Link、Nokia等厂商也有推出Mesh路由器产品产品,根据需求和预算选择即可。
华硕X570系列主板领衔,华硕及ROG系列主板亮相
2019年7月23日,“天生BUFF”ROG 2019新品发布会在北京凯迪拉克M空间召开。此次大会上,华硕共发布了包括PC游戏、主机游戏和手机游戏在内的三大游戏解决方案。并发布了华硕X570系列主板,和以华硕电竞主板为核心的“ROG信仰全家桶”、电竞特工主机等专业游戏装备解决方案。华硕X570系列主板华硕X570系列主板涵盖ROG玩家国度、ROG STRIX猛禽、TUF GAMING电竞特工、PRIME大师及PRO系列主板。此次活动现场,华硕展示了世界超频纪录的缔造者ROG CROSSHAIR VIII FORMULA[简称ROG C8F],ROG CROSSHAIR VIII HERO(WI-FI) [简称ROG C8H(WI-FI)],首款Mini-DTX版型的ROG CROGGHAIRI VIII IMPACT,顶尖电竞装备ROG STRIX X570-E GAMING,ROG STRIX X570-I GAMING和电竞特工TUF GAMING X570-PLUS(WI-FI)6款X570主板。ROG玩家国度X570主板全新的ROG玩家国度X570主板共有3款,均在本次会上展示。其中,ROG C8F和ROG C8H(WI-FI)主板已正式上市,京东首发价分别为5999元、3799元;而ROG C8I预计8月将正式售卖。华硕ROG X570系列主板,均搭载了8 4 Pin特制实心电源接口,并采用Teamed Power Stage供电方案,搭配超合金电感及强化型固态电容。ROG C8F和ROG C8H(WI-FI)搭载16个供电模组,采用全方位散热设计,整合寿命长达6万小时以上的静音风扇辅助南桥散热、M.2区专属铝制散热片和ROG水冷控制区。此外,Optimem III内存技术,采用独特的内存走线,屏蔽干扰信号,让信号更纯净,可提升内存的稳定性和超频空间。确保主板内存插槽全插满运作时,频率可高达DDR4 4800MHz (O.C)以上。板载支持AMD StoreMI技术的双M.2接口、Intel Wi-Fi 6 AX200无线网卡、数量可观的USB 3.2接口和可战未来的NODE扩展接口,支持AURA SYNC神光同步。为了提升降温效果,ROG C8F主板还拥有混合水冷散热模块、ROG装甲和金属背板。为满足玩家打造小型主机的需求,ROG将推出首款Mini-DTX版型主板——ROG C8I,其尺寸略大于常见的Mini-ITX主板,拥有ROG SO-DIMM.2,配备2个M.2接口,2个风扇接针及1个可编程RGB灯带接针;内置双静音风扇的I/O冰甲。京东华硕ROG CROSSHAIR VIII FORMULA 主板 C8F EK定制水冷模块WIFI电竞主板5999元直达链接京东华硕ROG CROSSHAIR VIII HERO主板 C8H 板载WIFI电竞主板3899元直达链接ROG STRIX猛禽X570系列主板ROG STRIX猛禽系列隶属于ROG玩家国度,专为电竞游戏玩家打造,其拥有一系列专业电竞增效技术,包括电竞信仰氛围灯、电竞信仰音效、电竞信仰网络、电竞信仰提速、电竞信仰守护和电竞信仰互联等。ROG STRIX猛禽X570主板,包括采用ATX版型的ROG STRIX X570-E GAMING主板,和采用Mini-ITX版型设计的ROG STRIX X570-I GAMING主板。ROG STRIX猛禽X570主板采用了最高16个供电模组设计,为了散热效果,其内置8mm热管的超大MOS散热片、特质电感导热贴、6层PCB设计、静音风扇及双M.2散热片等。此外,ROG STRIX猛禽X570主板还拥有全新升级的ProCool II特质实心供电接口,实心接针设计可使传输电流提升42%,增加了8Pin接口金属装甲。外观上,ROG STRIX猛禽X570主板采用斜切式雨滴图案,融合AURA RGB的炫彩ROG标志,并加入电竞图腾,同时支持AURA SYNC神光同步,并板载第二代可编程ARGB灯带接针。其中,ROG STRIX X570-E GAMING主板板载2.5G网卡及Intel Wi-Fi 6 AX200无线网卡。京东华硕ROG STRIX X570-E GAMING 主板2999元直达链接TUF GAMING电竞特工X570系列主板华硕TUF GAMING电竞特工X570系列主板主要面向游戏玩家人群。TUF GAMING电竞特工X570系列主板中的TUF GAMING X570-PLUS(WI-FI)在现场亮相,还有台以其为核心打造的电竞特工主机也同时展出。华硕TUF GAMING X570-PLUS(WI-FI)主板采用TUF军规用料,12 2强化型Dr.MOS供电解决方案,配备6层PCB设计及寿命长达6万小时以上的静音风扇,双M.2接口,并支持AURA SYNC神光同步。华硕TUF GAMING X570-PLUS(WI-FI)主板板载Intel无线网卡,拥有DTS游戏音效定制技术,提供3种预设音效模式。京东华硕TUF GAMING X570-PLUS 主板2099元直达链接PRIME/PRO X570系列主板除了上述针对游戏玩家的三大系列外,华硕X570系列主板专为DIY爱好者推出了PRIME X570-PRO和PRIME X570-P两款新品。相比游戏玩家系列,PRIME X570-PRO和PRIME X570-P外观较为朴素,在核心功能方面,提供高效供电解决方案、6层PCB设计、配备长效静音风扇的全方位散热设计。此外,华硕还推出了首次专门针对内容创造者和小型工作站人群量身打造的PRO系列主板——PRO WS X570-ACE。配备高规格的散热供电,8层PCB设计,板载U.2接口,还有远程管理中心软件加持。京东华硕PRIME X570-PRO 主板 2199元直达链接京东华硕PRIME X570-P 主板 1699元直达链接TUF B450M-PRO GAMING:三代锐龙的良配除了上述X570主板外,会上还特别展示了华硕的B450电竞小板——TUF B450M-PRO GAMING。这款主板基于主流的B450芯片组打造,拥有10相数字供电,覆盖式散热盔甲,升级BIOS后可支持最新的第三代AMD锐龙处理器和PCIe 4.0技术,还拥有完整的UEFI图形化BIOS设置界面。接口方面,搭载疾速双M.2接口,支持AURA SYNC神光同步,价格为799元的。京东华硕TUF B450M-PRO GAMING 游戏主板 799元直达链接
微信小程序上线后台定位等多项功能
8月7日消息 今日,微信官方宣布,小程序新增后台定位功能,同时新增了云调用、多种云开发资源配额和一系列拓展能力,并对自动化测试进行了升级。此前,定位服务将在用户关闭小程序、锁屏或微信进入后台时停止。后台定位将满足线路导航、路线记录以及长时间持续定位等需求。▲后台定位 | 图源:微信当用户将设置中的位置信息选为“使用小程序期间和离开小程序后”,小程序就可以使用新增的后台定位接口。在用户退出小程序界面后,小程序将以浮窗的形态继续获取用户位置信息,并提供服务。除了后台定位,微信小程序还为开发者升级了自动化测试能力。基于小程序自动化SDK,开发者可与任意流行的 Node.js 测试框架结合,编写测试用例。此外,小程序端发起的云函数现在可以免鉴权使用开放的 API 接口,进一步降低小程序的开发门槛。
Electron 应用容易被修改并植入后门
因其跨平台能力,Electron 开发平台是许多应用的关键组成部分。基于 JavaScript 和 Node.js 的 Electron 被用于 Skype、WhatsApp 和 Slack 等流行消息应用,甚至被用于微软的 Visual Studio Code 开发工具。但 Electron 也会带来安全隐患,容易修改植入后门。
中欧PHP开发者大会因多元化争议而取消:完全由白人男性演讲
上周末,原定于10月4日至6日在德国德累斯顿举行的PHP会议PHP Central Europe developer conference (PHP.CE)因多元化争议宣布取消。可以看到,大会主办方在会议首页直言:“The conference has been canceled and won't be continued*. Sorry for the inconvenience.”会议的组织者在两名预定的演讲者发表公开声明(this, this and this post)表示他们今年不参加会议之后,决定取消此次活动,理由是担心缺乏多元化。在 PHP.CE首页我们也留意到,大会主办方特意强调了多元化的重要性:DIVERSITY MATTERS!PHP.CE声称要致力于打造一个尽可能包容的会议,希望展示德国各地的人才,并欢迎国际同行发表看法。此次事件的起因应该是教育咨询公司The Graide Network的首席技术官Karl Hughes,他在推特发文表示,对这次完全由白人男性组成的演讲会议感到失望。随后,PHP开发者Larry Garfield得知了这一情况,并成为最早公开宣布不参加此次会议的人,他曾因特殊的性亚文化癖好(BSDM)而遭到Drupal项目的驱逐。上个月他在博客发文宣布退出今年的 PHP.CE大会,原因是此次大会没有女性演讲者。Larry表示在得知大会没有女性演讲者后,他曾与组织者交涉过,并提出了一些降低成本的可行方案,他的计划是与会议组织者合作,以补贴参会人员的差旅费用,因为他们知道国际旅行的费用可能会阻止妇女和其他代表性不强的群体提交提案,但会议组织者表示他们不接受这样的安排。他们指出今年只有一位女士提交了一份会议提案,并且这份提案与去年在本地会议发表的重复。组织者坚定表示,提案征集阶段已结束,他们现在不愿意接触新人。对于Larry Garfield的退出,会议的一位组织者Dariusz Grzesista回应称,多元化与包容性是值得提倡的目标,但不应该以牺牲演讲质量为代价。随后,开发者Mark Baker也决定退出会议的演讲,理由与Larry Garfield的相似。他认为多元化比发表演讲更重要。这种政治分歧在技术社区早已司空见惯,Node.js、Python、Django、Redis、CouchDB和 LLVM 都处理过与多元化、包容性、冒犯性语言或冒犯行为有关的问题。不过对于此次会议的取消,一部分人认为主要原因不是政治分歧,更有可能是门票销售不佳。
火币下周将推出区块链手机,售价500美元
9月4日消息,据外媒报道,加密货币交易平台火币计划下周在东南亚推出其区块链驱动的智能手机,Acute Angle。据消息透露,火币的新区块链手机已经可供中国的部分用户使用,但实际的发布将在下周,将作为第六次火币Prime发布的一部分。Acute Angle售价约500美元,可以使用火币交易所自己推出的Huobi Token(HT)购买。根据报道,到2019年底,Acute Angle将在东南亚地区铺开网络,如果发售成功,火币将计划把Acute Angle拓展到欧洲和美国市场。火币的CEO翁晓奇表示,区块链手机将有助于区块链产业发展,并强调会有更多类似的举措,火币将于9月11日发布第六个Huobi Prime项目,即全网络(NODE)。火币希望借助硬件终端和激励措施来建构网络。
在终端禁止广告之后,npm提出给开源开发者捐赠
不久前,Standard JS在项目中实验性内置广告的事件引起广泛讨论的,之后npm公司宣布将禁止此类终端广告行为。根据 The Register 报道,现在npm提出了以Patreon(一个供内容创建者进行群众募资的平台)方式给开源开发者捐赠的想法。npm表示,它打算在今年年底前为开源开发人员开发一个众筹平台。声明发布之前,被修改增加了禁止有“在运行时、安装时或软件开发生命周期的其他阶段显示广告”的软件包。npm公司首席执行官Brian Bogensberger在上周五的一篇博客文章中说到,过去几个月,公司工程师一直在研究注册表基础设施,并表示在9月底能够分享这个框架。npm现已进入一个由Patreon、GitHub Sponsors、OpenGroup和Librapay提供服务的市场,GitHub Sponsors 有开源项目货币化模式,并且它强调了开源和赚钱的真正问题:慷慨。软件开发商Linus Lee在一条推文中写道:“他们只是禁止通过任何方式在进行安装时出现资金提示信息,npm使用它对node.js生态系统的权力,寻找从他们软件包中收益的维护人员”。Eaze首席工程师、npm 前首席技术官CJ Silverio反对了这一计划,她说:npm教会了每个人可以使用软件包管理器免费下载和安装软件,既然如此,现在为什么要付钱呢?Silverio还指出Linux的崛起具有借鉴性,Linux是免费的,所以它的发展比需要花钱的Unix要好,她提出问题:“这个行业会不会出现从免费向付费倒退的情况?”。其实,如果软件开发人员对开源项目的维护是无偿的,并且对公司利用他们的劳动力不在意的话,那么就不会出现倒退。这个问题自开源开发以来就是潜在的。例如,在过去一年左右的时间里,与MongoDB和Redis等开源项目合作的公司,就对亚马孙、谷歌和微软等云平台从开源项目中获利表示不满,因为这些巨头公司并没有补偿开源项目的开发者。个别开源项目维护人员也觉得这不公平,认为他们是在没有金钱资助的情况下继续进行着改进代码的工作。周二,NPM CLI的前技术主管兼架构师,现微软公司旗下的NuGet软件包经理Kat Marchán提出了她的愿景,即使用替代软件许可证(如平价许可证)的支付机制,建立一个更加公平和人道的系统,以解决她所称的开源可持续性危机。在一篇关于dev.to的解释性文章中,Marchán写道:“开源项目的维护人员之所以辛苦,是来自社区带来的压力,使得他们通常只能在业余时间来进行维护工作,可一旦他们试图利用某种模式使项目可持续就会遭到诟病,比如最近基于广告的资金争议”。在 Twitter 上,她写道:我希望能建立这样一个世界:自由软件贡献者和合作者,以及维护人员,因为他们为这些项目投入劳动力后能够获得报酬,这些项目有助于推动我们经济的发展。当前的开源系统需要改进,必须用一个更加公平的系统来取代。
OpenJS 基金会宣布第一个孵化项目:Node Version Manager
OpenJS Foundation 宣布,Node Version Manager(NVM)成为该基金会的第一个孵化项目,NVM 是一个符合 POSIX 的 bash 脚本,用于管理多个 Node.js 活动版本。OpenJS 基金会是由 JS 基金会和 Node.js 基金会合并创建的,它的使命是:
Electron 7.0.0稳定版正式发布:跨平台桌面应用开发工具
Electron 7.0.0 稳定版正式发布了,Electron 是 GitHub 开发的跨平台桌面应用开发工具,支持使用 Web 技术开发桌面应用,其基于 C 开发,GUI 核心来自于 Chromium,而 JavaScript 引擎使用 V8。此片更新内容如下:Notable ChangesElectron 的核心组件是 Chromium、Node.js 与 V8,按照国际惯例它一般都会与这些项目保持同步更新,以提供最新的 JavaScript 特性、性能改进和安全修复。在此版本中这三者分别升级内容如下:Chromium 78.0.3905.1New in 78New in 77Node.js 12.8.1Node 12.8.1 更新内容Node 12.8Node 12.7Node 12.6Node 12.5V8 7.8V8 7.8 更新内容V8 7.7增加了 Windows on ARM(64位) 版本 为异步请求/响应的 IPC 添加了 ipcRenderer.Invoke() 和 ipcMain.Handle()添加了 nativeTheme API 来读取和响应操作系统主题和颜色方案的变化切换到新的 TypeScript Definitions 生成器,生成更加精确的定义Breaking Changes删除部分 API:Tray.setHighlightMode() (macOS)app.enableMixedSandbox() app.getApplicationMenu()app.setApplicationMenu()powerMonitor.querySystemIdleState()powerMonitor.querySystemIdleTime()webFrame.setIsolatedWorldContentSecurityPolicy()webFrame.setIsolatedWorldHumanReadableName()webFrame.setIsolatedWorldSecurityOrigin() Session.clearAuthCache() 不再过滤已清除的缓存条目 MacOS 上的本机接口(菜单、对话框等)现在自动匹配用户机器上的暗模式设置更新 electron 模块以使用 @Electronics/get,支持 Node 8Electron.asar 文件不再存在New Features 所有异步 webContent/<webview> 方法现在返回一个 Promise为 macOS 添加了 always-on-top-changed在 Netlog API 中添加 captureMode 和 maxFileSize 选项在 app.getAppMetrics() 输出中添加了 creationTime/sandbox/IntegrityLevel向 webContents.print() 回调函数中添加了 failureReason 参数,以区分成功、失败和取消为 BrowserView 添加了 getBalls() 方法将 gpu-info-update 事件添加到 app 中,只要有 gpu 信息更新,就会发出 gpu-info 更新事件在 app.getAppMetrics() 添加 memory添加 process.getBlinkMemoryInfo()在 webFrame/webContent/<webview> 中添加了 emoveInsertedCSS()将 zoom-changed 事件添加到 webContent 中增加打印自定义选项app.moveToApplicationsFold 添加了一个可选的冲突处理回调支持 webFrame.sertCSS() 中的 CSS origin在 Windows 上支持 Tray API 的 mouse-move 事件Windows 上支持 systemPreferences.isDarkMode() APImacOS 上支持  systemPreferences.isHighContrastColorScheme() API启用 W3C Reporting APImacOS 上实现了 BrowserWindow.setFocable在校验和文件中添加 Windows on ARM node 头文件另外此版本还有许多修复和属性更改,更多详情见发布说明。
OpenJS 基金会推出 Node.js 证书 JS 开发者可以“考证”了
OpenJS 基金会近日在其官方博客公布了最新启动的专业认证计划。据介绍,此项认证计划重点关注 Node.js 开发者在专业环境中构建 Node.js 应用和服务所需的关键技能。开发者通过认证后,可获得由 OpenJS 基金会颁发和认证的证书,证书有效期为三年,其中包括 PDF 证书和数字徽章,到期后可重新认证。
OpenJS基金会推出Node.js证书,JS开发者可以“考证”了
OpenJS基金会近日在其官方博客公布了最新启动的专业认证计划。据介绍,此项认证计划重点关注Node.js开发者在专业环境中构建Node.js应用和服务所需的关键技能。开发者通过认证后,可获得由OpenJS基金会颁发和认证的证书,证书有效期为三年,其中包括PDF证书和数字徽章,到期后可重新认证。正如上面提到的,此项认证主要是考查开发者构建Node.js 应用和服务所需的关键技能,所以OpenJS基金会也推出了两个证书来对这两种技能进行认证,这两个证书分别为OpenJS Node.js应用开发者证书和OpenJS Node.js服务开发者证书。据官方介绍,OpenJS Node.js应用开发者(JSNAD)证书非常适合具有至少两年 Node.js使用经验的开发者。点此了解详情OpenJS Node.js服务开发者(JSNSD)证书则更适合具有使用Node.js创建RESTful服务器以及服务的经验。点此了解详情另外,两项考试的时长都为两个小时,开发者通过基于浏览器的终端进行考试,如果有需要,每项考试都支持自动免费重考。考试现场会有监督员进行监督,并以英文的方式在线进行。OpenJS基金会执行董事Robin Ginn表示:“OpenJS Node.js专业认证计划旨在帮助开发者展示其在现实环境中的Node.js水平,并为他们提供将这些技术引入各自组织的知识。认证考试不仅仅是一种与供应商无关的考查方式,它还提供了一个由Node.js社区的专业从业者开发的框架,此框架还为经验丰富的开发者阐述清楚关于Node.js的各种技能。”关于OpenJS基金会OpenJS基金会的使命是通过提供一个中立的组织来托管项目并协作资助有益于整个生态系统的活动,从而促进JavaScript和Web生态系统的健康发展。OpenJS基金会由32个开源JavaScript项目组成,其中包括Appium,Dojo,jQuery,Node.js和Webpack,并得到30个企业和最终用户成员的支持,其中包括GoDaddy,Google,IBM,Intel,Joyent和Microsoft。这些成员清楚地认识到JavaScript生态系统所具备的相互联系的性质,以及为代表重要共享价值的项目提供中心位置的重要性。
苹果Mac App Store自动拒绝使用Electron框架开发的应用
开发者报告,苹果 Mac App Store 的应用审核流程开始自动拒绝使用 Electron 框架开发的 App。基于 JavaScript 和 Node.js 的 Electron 框架能将 Web App 封装打包成桌面 App。
JavaScript包管理器npm实现捐赠,首次为开源代码提供资助
NPM 公司,JavaScript 包管理器 npm 的维护者。今年8 月份时,Standard JS在项目中实验性内置广告的事件引发热议,这些广告通过一个名为Funding的npm软件包展示在终端,该软件包包含在Standard的代码库中。之后NPM公司宣布将禁止此类终端广告行为。此事件后,NPM表示,它打算在今年年底前为开源开发人员开发一个众筹平台。根据 The Register 报道,它已经在此承诺上迈出了一步。本周周二,该公司修改了最新版 npm 6.13.0 的代码,添加了“funding”命令。它的作用是让维护 npm 的开发人员(为Node.js 创建包)声明元数据,为有意愿的捐赠者指明捐赠平台。在 package.json 文件中添加了一个“funding” 字段,这个文件列出了各种模块设置和依赖项。funding 可指向在线捐赠服务的 url,如 Patreon、Open Collective、GitHub Sponsors、License Zero 或者其他支付网站。之后,使用这些包的应用程序程序员可运行 npm fund,为指定的包的作者进行捐赠,该命令在用户的默认浏览器中打开指定的捐赠服务链接,以操作信用卡进行捐赠等。下图可以看到,npm ls 与 npm fund 的区别,ls 只列出包名,而 fund 还列出了捐赠平台及其 url。NPM公司的联合创始人和联合首席技术官 Isaac Schlueter在电话采访中说:“在开源领域,资金是一个长期存在的问题,我们正在解决开源项目需要资金的难题,但很少有方法可以让使用的代码的人直观地了解这些信息,这种融资方式就可以做到”。Schlueter 认为NPM 公司的融资机制有利有弊,有利的方面是它确实把一些营销技巧从方程式中剔除了出来,开发者只需要设置一个支付URL,然后把它放进“包“里,当该包管理器被安装时就自动出现在列表上。不利的影响是它很可能奖励的是优秀的营销人员,而不是奖励优秀的开发者。但当被问及NPM 公司的融资平台是否有助于为NPM本身提供资金时,Schlueter说:这是很有可能的,但我也不认为这是一个可增长收入的方式。我想强调的是不要让开源生态系统因为被耗尽而瓦解。
高性能跨语言虚拟机GraalVM 19.3支持JDK 11与ARM64架构
GraalVM 19.3 发布了。GraalVM 是一个高性能跨语言虚拟机,用于运行 JavaScript、Python 3、Ruby、R、基于 JVM 的语言,如 Java、Scala、Kotlin 和基于 LLVM 的语言,如 C 和 C 。GraalVM 消除了编程语言之间的隔离,并支持共享运行时的互操作性。它可以独立运行,也可以在 OpenJDK、Node、Oracle 或者 MySQL 上运行。GraalVM 19.3 是从项目主线构建的第一个计划长期支持(LTS)版本,也是一个主要功能版本,建议所有用户升级。LTS 状态可以确保稳定性、安全性和性能修复程序将从当前分支向后移植,直到下一个 LTS 版本出现为止。此版本基于 JDK 11,同时也是第一个支持 JDK 11 的 GraalVM 版本,考虑到 JDK 8 和 JDK 11 之间比较大的区别,这其实代表了一个重要的里程碑。特别是 JDK 9 中引入的 Java 平台模块系统(JPMS,Java Platform Module System)意味着 GraalVM 现在使用模块封装来隔离代码以隔离诸如 JVMCI、GraalVM 编译器和应用程序代码中的 Truffle API。此外,这也意味着 JDK 11 上的 GraalVM 包含自 JDK 8 以来的所有 JDK 更改。关于 JDK 11,此次发布还提供了基于 JDK 11 的支持 ARM64 架构的 GraalVM 社区版的预览,它包括对所有 JVM 语言的支持,其它语言支持将在不久后提供。该发行版包括现成的 GraalVM 本地镜像,可立即构建启动应用程序,这些应用程序在 ARM64 环境中消耗的内存更少,不过目前存在一些限制,比如 npm 和 node 不支持 runtime 代码安装。GraalVM 19.3 切换为使用 JDK 本地代码,而不是手动替换。GraalVM 本地镜像切换到 Java 本地接口(JNI)平台使它有可能提供对 JDK 11 的支持以及对 Windows OS 的扩展支持。这对启动时间或内存占用量没有影响,并且消除了将 JDK 库(例如 libsunec.so)与使用 Java 加密服务的本地镜像一起交付的需要。GraalVM 现在附带了 JDK 库的可静态链接版本。同时,通过本地镜像 Maven 插件支持将 GraalVM 本地镜像与 Maven 一起使用,这意味着用户可以使用 mvn package 命令直接使用 Maven 构建项目及其本地镜像。从 GraalVM 19.3 开始,用于 GraalVM 本地镜像相关工件(包括插件)的 Maven  <groupId> 从 com.oracle.substratevm 更改为 org.graalvm.nativeimage:<plugin>
GitHub仅用6小时修复NPM JavaScript注册表中长期存在的漏洞
GitHub 今天表示,团队已经修复了 NPM(Node Package Manager)JavaScript 注册表中一个长期存在的问题,该问题将允许攻击者在没有适当授权的情况下更新任何软件包。首席安全官 Mike Hanley 昨天发布了这个问题,这个问题是由安全研究人员 Kajetan Grzybowski 和 Maciej Piechota 于 11 月 2 日报告的,并在6小时内修复。
微软发现恶意 npm JavaScript包,可从 UNIX 系统窃取数据
Microsoft 的漏洞研究团队在 npm(Node Package Manager) 存储库中发现了一个恶意 JavaScript 程序包,可从 UNIX 系统窃取敏感信息。该恶意软件包名为 1337qq-js,于 2019 年 12 月 30 日上传到 npm 存储库中。目前,该恶意软件包已被 npm 的安全团队删除。在此之前,该软件包至少被下载了 32 次。根据 npm 安全团队的分析,该软件包通过安装脚本来泄漏敏感信息,并且仅针对 UNIX 系统。它收集的数据类型包括:环境变量运行过程/ etc / hosts优名npmrc文件其中,窃取环境变量则被视为重大安全漏洞。npm 团队建议所有在其项目中下载或使用此 JavaScript 程序包的开发人员从其系统中删除该程序包,并轮换使用任何 compromised 的凭据。事实上,这是恶意软件包第六次被放入 npm 存储库索引,此前的五次分别为:2019 年 6月 -黑客将电子本地通知库进行后门操作,以插入到达 Agama 加密货币钱包的恶意代码。2018 年11月 -一名黑客借壳了the event-stream npm 程序包,以将恶意代码加载到 BitPay Copay 桌面和移动钱包应用程序内部,并窃取加密货币。2018 年 7月 -黑客利用旨在窃取其他开发人员的 npm 凭据的恶意代码破坏了 ESLint 库。2018年 5月 -黑客试图在名为 getcookies 的流行 npm 包中隐藏后门。2017 年 4月 -黑客利用敲诈手段在 npm 上载了 38 个恶意 JavaScript 库,这些库被配置为从使用它们的项目中窃取环境细节。
node-ipc开源维护者因反俄自毁代码 遭到GitHub社区猛烈抨击
GitHub 上的一份公告称,某款流行开源软件的技术专家兼维护者故意破坏了项目代码,以擦除在俄罗斯和白罗斯地区使用该程序的计算机上的数据。然而如此短视的行为,还是遭到了开源社区的猛烈抨击。这一事件表明“数字黑客主义”存在潜在的不利因素,尤其是容易误伤使用相关代码的普通人。
世界癌症日:AI对癌症治疗有什么帮助?
2月4日是世界癌症日。据世界卫生组织,全球范围内,近六分之一的死亡由癌症造成,近70%的癌症死亡发生在低收入和中等收入国家。2015年癌症造成880万例死亡,最为常见的癌症类型为肺癌、肝癌、结肠直肠癌、胃癌和乳腺癌。在中国,癌症负担也呈现逐年上升态势,2015年,平均每天超过1万人被确诊为癌症,每分钟有7.5个人被确诊为癌症。以乳腺癌为例,乳腺X线影像技术是筛查乳腺癌的「黄金标准」。即便如此,对于医学专家来说,阅读X线影像仍然是一项困难的任务,检查结果经常有假阳性(误诊)和假阴性(漏诊)的例子出现。这不仅为医生带来繁重的工作量,也会耽误病患的治疗,让病患承担不必要的压力。现在,随着「AI辅助医疗」,「AI驱动医疗」的话题被频频提起,这也意味着从医疗产业和健康产业来看,技术正在承担愈加重要的角色,比如辅助医生突破原先医疗水平的天花板、代替医生承担重复的例行工作,或是改善地区医疗配置不均衡的现状等等。对症下药「过去几年里,Google团队将AI应用于医疗保健领域——从通过分析和研究电子病历预测患者疾病到辅助检测肺癌等疾病,虽然我们仍然处于技术开发的早期阶段,但是结果是充满希望的。」Google CFO Ruth Porat说道。去年5月,Nature Medicine刊登了Google对于肺癌检测的新进展——根据低剂量计算机断层扫描图像来预测肺癌。放射科医生无法像计算机一样审查3D扫描,他们需要审查数百张2D图像才能发现问题。Google创建了机器学习模型,分析高通量的3D图像,生成整体肿瘤预测,还可以识别细微的恶性组织。输入患者先前的CT图像,该模型便可分析和评估可疑肺结节的生长速度。Google团队利用45856例未经识别的CT图像进行训练,并且将结果与六位经认证的放射科专家进行了比较。在放射科医生无辅助的情况下,Google模型检测到的假阴性减少5%,假阳性减少11%。Google在乳腺癌诊断方面所作的努力要开始于更早。一般来说,乳腺癌细胞的扩散方式通常会先转移到附近的淋巴结中,淋巴结转移会影响放射治疗、化疗和手术切除额外淋巴结的治疗决策。全球过去至少有50万人因患乳腺癌死亡,他们当中有90%都是转移性肿瘤。针对从原发部位扩散转移到附近淋巴结的癌症的检测,是病理检查中重要且艰难的一步。大多数癌症都涉及到淋巴结转移的检测,这项检测则成为了被广泛采用的TNM癌症分期的基础诊断依据之一。Google曾经带着工具LYNA(LYmph Node Assistant)参加2016 ISBI Camelyon Challenge,该竞赛主要是对乳腺癌在淋巴结中的转移进行病理切片的分类和定位。2018年,Google分别发表两篇论文阐述在乳腺癌方面的进展。在第一篇论文中,Google将LYNA算法应用于识别Camelyon Challenge和独立数据集(由论文的共同作者提供)的病理切片。LYNA被证明其在图像可变性和组学伪影上具有稳定的鲁棒性,并且在两个数据集上实现了相似的性能,而且无需额外更多的研发。左侧:包含淋巴结的载波片有多个组学伪影 右侧:LYNA识别肿瘤区域在中央(呈红色),并正确地将周围充满伪影的区域分类为非肿瘤区域(呈蓝色)两个数据集中,LYNA能够以99%的正确率区分有转移性癌症和无转移性癌症的载玻片。此外,LYNA可以确定每张载玻片内癌症和可疑癌症的位置,其中一些由于体积太小而无法被病理学家检测到。因此Google团队推测,LYNA的一个重要用途就是突出这些「可疑」区域,辅助病理学家做出最终诊断。在第二篇论文中,六名获认证的病理学家在LYNA协助下和没有LYNA协助下对转移性乳腺癌的淋巴结做了检查。得益于LYNA,病理学家平均诊断时间减半,检查每张载玻片只需要一分钟,病理学家主观上认为有了LYNA的帮助,诊断「更加容易」。就诊断准确性而言,在LYNA的帮助下,病理学家将淋巴结微转移的遗漏率减少了一半。左侧:含有微转移淋巴结的载波片的放大图 右侧:相同视图,在LYNA辅助后用蓝色标注出肿瘤的位置AI诊断这些进步听上去令人兴奋,但是更多处于科研试验阶段,有限的数据库,模拟的诊断工作流程,单独检查每个患者的单个淋巴结的病理载玻片而非实际临床病例中常见的检查多个淋巴结病理载玻片等,都让LYNA算法距离真正的临床实践还有很长的路要走。可喜的是,2020年伊始,Google又在癌症诊断方面带来了好消息。1月1日,Google Health部门联手DeepMind在Nature学术期刊上发布乳腺癌人工智能检测系统。该模型是在一个具有代表性数据集上进行训练和调整的,数据集由76000多名英国女性和15000多名美国女性的未经识别的乳腺X线影像组成。然后在一个单独的未经识别的数据集上进行了评估(包括25000多名英国女性和3000多名美国女性)。评估结果显示,对比放射科医生,AI模型的假阳性低了5.7%(美国)和1.2%(英国),假阴性低了9.4%(美国)和2.7%(英国)。另一项研究中,该系统的表现超越了六位放射科专家。乳腺癌人工智能检测系统的检测表现无论是LYNA算法还是这项乳腺癌检测系统,Google的研究都表明,现阶段最好的诊疗结果来自专业人类和技术的共同努力。比如,英国的乳腺筛查流程由两位医生共同读片(Double Reading Process),针对这类情况,研究人员让系统和人类专家同时做第一个决定,意见一致便可不二次读片,意见不一致,将会启动二次读片。研究人员发现该人工智能系统保持了非劣效性能,相比传统的「双读」,AI可以减少第二个读片者的88%工作量。据Google介绍,这项人工智能检测系统未来对于临床医学有着深远的意义。为了验证该模型是否可以推广到其他人群和筛查方案。Google团队仅仅用英国数据重新训练系统,在美国数据中评估。这项实验下,AI模型表现仍然好于人类专家,假阳性减少了3.5%,假阴性减少了8.1%。尽管差距略有缩小,但是测试表明,在未来的临床部署中,该系统可能提供强大的基础能力,提高癌症筛查的准确性和效率,减少患者的等待时间和压力,通过对本地数据微调,模型的表现性能会更好。但是为了达到这一目标,研究人员仍然需要持续的研究,前瞻性的临床试验以及监管部门的批准。
BBS 往事:人们在互联网尚未普及之前的连接
在人与人之间在线交流这件事上,一切都可以追溯到Randy和他的BBS。计算机史学家Jason Scott这样悼念刚去世的互联网先驱Randy Suess。据《纽约时报》,Suess 12月10日在芝加哥去世,享年74岁。世界上第一个对公众开放的拨号BBS诞生于1978年2月16日,Suess就是它的发明者之一。对于出生在互联网时代的人来说,BBS(Bulletin Board System,电子布告栏系统)是一段蒙满灰尘的「史前」故事。关于BBS,人们更多谈起的往往是论坛(Forum),一种在BBS基础上经过多番改良的,不再限于纯文字交流的平台。Suess的离世再一次唤起人们的记忆,他是「互联网」连接革命的发起者,而这场革命早在1978年就开始了。生于暴风雪1978年年初,一场罕见的暴风雪袭击五大湖地区,芝加哥被超过1米的积雪覆盖。城市停止了运转,人们暂时不用去工作。终于闲暇下来的IBM工程师Ward Christensen打通了Suess的电话。随后,这对在家用电脑爱好者俱乐部上相识的好友,开始着手开发他们此前一直在讨论的新型信息交流系统。▲CBBS的两位发明者|BBS: The Documentary 预告片截图他们的想法就是先建造一台中央电脑,然后俱乐部成员可以用各自的电脑拨号接进来,发布通告,交换关于会议、新想法和新项目的信息。打个比方,这套计算机系统就像是杂货店墙上供人们张贴传单的公告板。据Christensen的回忆,仅靠二人合作——Christensen负责编写软件,Suess负责组装硬,搭建系统只用了两周。系统工作的具体流程是,他们在一台名为S-100的个人电脑中嵌入一个可以通过电话线发送、接收数据的modem(调制解调器)后,Suess还将其他硬件和电脑焊接在一起。这些硬件的作用是自动重启机器,每当有人拨号接入S-100的时候,机器就会开始加载Christensen编写的软件。就这样,CBBS(Computerized Bulletin Board System)上线,世界上第一个对公众开放的拨号BBS诞生,后来出现的同类系统都被称为BBS。「硬件看起来非常简陋,看起来像是用铁丝网和口香糖粘起来的。」Christensen说。不仅是外观,它的功能现在看来也十分「简陋」。由于硬件和连接限制,CBBS每次只能接待单个拨号者的访问,用户轮流接入系统,而系统每秒钟只能传输5个单词。在一部描述BBS的缘起、发展和影响的纪录片 BBS: The Documentary(https://dwz.cn/Sf4Xkxia)里,Christensen的说法也得到佐证。「单从表面上看,早期的BBS似乎非常荒谬。」用户要进行对话耗时太长。在BBS上玩像国际象棋那样的电子游戏更是需要花上好几天,因为玩家在执行完指令后必须等一两天,再让对手接入,并轮流进行。▲CBBS登录界面|Wikipedia即便如此,CBBS还是很受欢迎。在系统上线几个月后,Suess和Christensen在科技杂志 Byte 上撰写文章介绍CBBS,并免费分发BBS软件的拷贝。即便那时还很少有人家里配备modem。但在两年时间里,已经出现了200-300个比较活跃的BBS,在顶峰时期,北美区留存着超过15万个BBS。直到1980年CBBS停用,据说它总计处理过超过50万次的拨号连线。为互联沟通奠基1984年,Tom Jennings开发了Fido协议(protocol)。Fido的出现,让BBS可以实现跨站交流,也慢慢形成了一个由爱好者自行搭建的通讯网络FidoNet。在FidoNet上,用户不再只能向单一布告栏发布信息,而是可以一次将消息分发到数百、数千个布告栏上。据《连线》报道,1984年,FidoNet在世界范围内只有132个站点(node),到了1995年,数量已经增加到了35000个。FidoNet在CBBS的基础上进行改造后,系统的互联属性也得以增强,它被认为是互联网普及之前使用人数最多的网络系统。在 BBS: The Documentary 里,Jennings描述了他的朋友们刚开始接触Fido概念时的反应,「有了这个程序,在电脑上拨号,输入账户和密码,进站浏览,然后留言,再过几个月,你或许能看到别人的回复。」但朋友们都认为这种沟通「太愚蠢了」。▲FidoNet上的BBS界面|FidoSysop Blog这种「愚蠢」的交流方式,却仿佛拥有魔力,甚至可以让部分人沉迷。在当时,如果拨号接入了不在用户所在地区的BBS,用户需要按越境电话标准支付每分钟1美元的费用。一些BBS用户成为了重度访问用户,在流连忘返一天下来后,他们就要付上600美元的电话费。这似乎很难理解,但在纪录片里,一些BBS站长(sysop)描述着他们对这种连接的浪漫想象:他们躺在床上,每当有人发帖,电脑上的灯光闪过的时候,他们觉得全世界将要涌进他们的卧室,即便是如此微渺的、慢吞吞的连接。一位受访对象甚至笑笑说,「当你跟别人提起『BBS』,如果对方的眼睛里没有猛地闪过一道光,那他就不值得我继续花费时间。」在他看来,BBS俨然已经成为识别同好的社交符号。除此之外,BBS更深远的意义是将更多的普通人连接到了一起。《连线》记者Kim Zetter写道(https://dwz.cn/11HITPIU),「不像互联网在刚出现的那样,只有研究者和军方能够使用它,BBS的内核是民粹主义(反精英主义)的,只要是买得起3000到10000美元电脑的人,就能互联。」在这之前,ARPAnet尽管迎来100台主机数量的突破,但仍局限在国防领域,普通的电脑爱好者很难介入网络世界。因此,CBBS是在当时许多拥有调制解调器的人唯一能拨入的网络。▲Randy Suess地下室里的CBBS|Suess家人提供给《纽约时报》的照片从19世纪70年代末到80年代,各地的爱好者以当年那个简陋的CBBS为蓝本,设计自己的BBS,这些形式更丰富的论坛支持富文本信息,提供实效聊天室和在线游戏等功能。《纽约时报》的作者Cade Metz这样写道(https://dwz.cn/fGaJtdY2),「这些由普通人们创造的服务,是现在互联全球的Twitter、Facebook和YouTube等社交媒体服务的先驱。」谁能想到最初50万次的拨号连接衍变成Facebook和YouTube的20多亿月活,曾经被Suess安置在地下室的CBBS系统也早就成为今天人们日常生活中基础设施般的存在。
诺基亚推出“智能节点”产品 轻松优化室内4G/5G网络覆盖
为帮助住宅和中小企业客户提供高质量的室内 4G / 5G 移动网络覆盖,诺基亚隆重介绍了新推出的多合一解决方案 —— 它就是所谓的“诺基亚智能节点”(Nokia Smart Node)。这套设备具有易于安装、即插即用的特点,且部署成本也尽可能降到了最低。通用型的设计,允许其轻松安装在墙壁、天花板、甚至桌面上。
RX 7000系列显卡是否用上5nm工艺?AMD:到时候再说
上周的财务分析师大会上,AMD干货满满,宣布了5nm Zen4架构,同时还推出了新一代的RDNA2架构,能效比RDNA第一代提升了50%,堪称AMD GPU十年来最大变革。除此之外,AMD还确认了再下一代的RDNA3架构,不过RDNA3架构的详情欠奉,制程工艺也只是用“Advanced Node”(先进节点)的模糊说法来简单定性。
运行于树莓派并支持触摸屏的模块化 Linux PC:Zero Terminal 3
硬件黑客 NODE 开发了一款运行在树莓派零(Raspberry Pi Zero)上的模块化手持式 Linux PC,名为 "Zero Terminal 3"。其配有 WaveShare 5.5 英寸全高清触控 AMOLED 显示屏、全尺寸 USB 2.0 接口、micro SD 插座和 1200 mAh 的内置锂电池。
Deno 1.0 发布
Deno 1.0 发布了。Deno 是作者 Ryan Dahl 在 Node 之后的又一大作,它是一个新的运行时,用于在 Web 浏览器之外执行 JavaScript 和 TypeScript,其采用 Rust 编写而成(最初用的是 Golang)。
微软开源 2019:“讨好”开发者,当开源圈的“万人迷”
又到了年末各种盘点出炉的时候,开源圈今年虽然没有“GitHub被微软收购”、“Red Hat被IBM收购”如此重磅且出圈的新闻,但依然不失精彩。开源圈作为开发者密度最高的圈子,微软作为开发者群体中“渗透率”最高的商业公司,微软与开源之间的故事,天生自带流量属性。本文就来和大家一起回顾微软在2019年与开源相关的重要事件——主要是引发较多关注和广泛讨论的新闻。为了更好地理解微软的开源2019,下面我们将会按不同的领域而非时间线进行回顾。编程语言从拥抱Rust 到开发基于Rust的安全编程语言最初,微软表示正探索将Rust作为C和C 的安全替代方案,并且也对外展示了使用Rust 重写Windows组件的体验。根据微软的说法,Rust 是一种从根本上考虑安全性的编程语言,他们将尝试使用Rust 重写各种产品,因为在过去的十年里,微软 70%以上的安全补丁都提供了与内存相关的错误,而Rust 正是解决这个问题的“良药”。到后来,微软为解决相应内存问题所做的工作,他们决定开发基于Rust的新编程语言 Verona,这是是用于微软“安全基础设施编程(safe infrastructure programming)”的一种新语言。微软推出新编程语言Bosque微软推出了一款全新的编程语言Bosque,该语言参考了TypeScript的语法与类型,还有 ML和Node/JavaScript的语义,其作者认为 Bosque超越了主流的结构化程序设计。Bosque由规范化程序设计思想而来,旨在解决当前结构化程序设计中遇到的这些问题,作者把结构化程序设计的兴起认为是编程器与开发工具的第一个黄金时代,他相信此次提出的规范化编程模型将大大提高开发者的工作效率、提高软件质量,并带来编译器和开发工具的第二个黄金时代。微软宣布加入OpenJDK项目微软正式签署了《Oracle贡献者协议》,甲骨文公司也对微软参与该项目表示了认可及欢迎。微软及其子公司在许多方面都高度依赖Java,并且在微软Azure云中向客户提供Java运行时服务。微软已经认识到在甲骨文成功有效管理下的OpenJDK项目所获得的巨大价值,它收购了Java,得到了更广泛的软件生态系统,微软也期待做出自己的一份贡献,它表示自己的团队在初期将致力于一些小的bug修复和反向移植。微软开源其C 标准库实现 STL微软开源了其MSVC的C 标准库实现(也就是STL),该库实现是MSVC工具集和Visual Studio IDE的一部分。微软表示开源STL可以使开发者随时了解其发展情况,使用最新更新,并且帮助完善项目。“随着C 标准化的加速发展,并且每年都会有更多的重大特性被投票,我们相信从开源贡献中接受主要特性将很重要。”微软官方上线Python教程微软上线了一套 Python教程《Develop with Python on Windows》,文档内容包括设置Python开发环境、在Windows与WSL子系统中安装相应开发工具,以及集成VS Code与Git工具并进行开发等。开发工具微软开源全新终端应用Windows Terminal微软在 Build 2019大会上宣布开源全新的终端 Windows Terminal,这是一个全新的、流行的、功能强大的命令行终端工具。包含很多来社区呼声很高的特性,例如:多Tab支持、富文本、多语言支持、可配置、主题和样式,支持emoji和基于GPU运算的文本渲染等。Visual Studio Online公开上线微软在 Build 2019大会上宣布了Web版本的VS Code - Visual Studio Online,并在两个月后的 Ignite 2019大会上推出Visual Studio Online公开预览版。▲Visual Studio Online从页面上直观地看,VS Online就是一个Web版的VS Code,但这其实只是它的一个前端界面,这个基于网页浏览器的编辑器同样支持Git存储库、扩展和内置的命令行接口,因此开发者可从任何设备编辑、运行和调试应用。而VS Online更强大的能力来自于背后Azure提供的云计算能力,并且这些能力可以支持到 VS Code与VS中,这意味着,其实开发者不使用浏览器也可以体验到VS Online带来的强大云计算资源支持。微软开源新字体Cascadia CodeCascadia Code是微软在 Build 2019大会上宣布推出的等宽字体,微软介绍它是与新的终端Windows Terminal一起开发的,官方建议将其与终端应用和VS、VS Code等文本编辑器一起使用。Cascadia Code为命令行和代码编辑器提供了全新的体验,并且它还支持编程连字(Programming Ligatures),就是在编写代码的时候,可以组合字符创建新的字形,这对于代码的可读性和呈现后的用户友好度都是一种很好的机制,同时这也增强了Windows Terminal的现代外观。操作系统微软在Windows 10中搞了个真正的Linux内核2019年微软直接在Windows中安上了一颗“Linux内脏”,这颗Linux内脏其实是今年5月份在Windows 10上推出的全新版本WSL(Windows Subsystem for Linux),新版本WSL 2使用了全新的架构,这是一个真正的Linux内核,它改变了 Linux二进制文件与Windows和计算机硬件的交互方式。微软将exFAT技术添加到Linux内核微软宣布将其 exFAT技术添加到Linux内核中。exFAT文件系统是FAT32的替代者,它由微软开发,但是不仅用于Windows系统,目前exFAT在整个电子行业中都得到了广泛应用,特别是 SD卡、USB闪存驱动、数码相机和MP3播放器中使用最为充分。如今微软开放了它的exFAT技术,并且把技术规范公开,这意味着,往后 Linux内核可以直接堂堂正正地将exFAT支持开箱即用。微软还强调了一句:Linux社区可以放心地使用Linux内核中包含的exFAT。微软将新版Edge浏览器引入Linux继推出WSL2、将 exFAT技术添加至Linux内核,微软再次瞄准了Linux。在Ignite 2019 大会上,微软正式宣布Edge for Linux 不久后将会发布。微软高级编辑Zac Bowden称新的Edge是完全跨平台的,该浏览器将是支持Windows平台,包括服务器和客户端,以及macOS、Android、iOS和Linux。微软开源Bing搜索背后的关键算法微软开源了一项Bing搜索背后的关键算法——SPTAG,它使Bing能够快速将搜索结果返回给用户。SPTAG(Space Partition Tree And Graph)是分布式近似最近邻域搜索(ANN)库,为大规模矢量搜索场景提供高质量矢量索引构建、搜索和分布式在线服务工具包。利用SPTAG算法作为开源Python库的核心,Bing能够在几毫秒内搜索数十亿条信息。开源文化自由软件之父RMS受邀到微软发表演讲自由软件运动发起人 RMS受邀在微软进行了演讲,其中谈到微软在开源上的贡献,他表示微软未来活动的主要动力,无论如何都必定是基于利润的,微软的开源贡献其实对于“自由世界”毫无贡献。RMS还给了微软十条建议,代表性的包括开源Windows、收回“毒瘤”言论以及指导GitHub正确许可证。微软将主办首场Linux会议 WSLConf微软公布了明年3月在Microsoft HQ举办WSLConf的消息,WSLConf是由微软主办的首个与Linux相关的会议,主要围绕WSL进行讨论,内容涉及该平台的最新发展动态,也会介绍WSL与一些IDE如Visual Studio和JetBrains的集成。Canonical 宣布它将成为 WSLConf 的“特别赞助商”,毕竟Ubuntu是最早与微软合作的Linux发行版,它也是WSL中最受欢迎的版本。
微软发现恶意npm软件包 可从UNIX系统窃取数据
Microsoft 的漏洞研究团队在 npm(Node Package Manager) 存储库中发现了一个恶意 JavaScript 程序包,可从 UNIX 系统窃取敏感信息。该恶意软件包名为 1337qq-js,于 2019 年 12 月 30 日上传到 npm 存储库中。目前,该恶意软件包已被 npm 的安全团队删除。在此之前,该软件包至少被下载了 32 次。
Oracle开源WebAssembly引擎GraalWasm:可二进制格式运行程序
近日 Oracle 开源了其在 GraalVM 中实现的 WebAssembly 引擎 GraalWasm,开发团队介绍,GraalWasm 当前实现了 WebAssembly MVP(最小可行产品)规范,并且可以以二进制格式运行 WebAssembly 程序,该程序是由诸如 Emscripten 之类的编译器后端生成的。支持 WebAssembly 扩展了 GraalVM 与其它支持的语言一起执行的能力,进一步有望使其成为通用编程语言执行平台。不过目前 GraalWasm 还是一个非常早期的实现,并且处于实验模式。为了实现 GraalWasm,开发团队使用 GraalVM 作为提供有效局部评估引擎的平台,使用 GraalVM 的 Truffle API,首先实现了 WebAssembly 二进制文件的解释器。WebAssembly 的半结构化格式能够轻松地恢复程序的控制流结构,从而使存储代码的内存数据结构可以表示为 AST。用 AST 表示的程序的解释器可以用非常简单的方式编写,但是,尽管基于 AST 的数据结构更易于检查和操作,但它们确实存在引入额外内存开销的缺点。另一方面,基于位码的代码表示不需要为每个基本指令实例化树节点,这就是基于位码的 GraalVM 解释器通常具有更小的内存占用的原因。由于每个 WebAssembly 块仅包含线性指令序列,因此 GraalWasm 能够结合两种解释器方法中的最佳方法:AST 叠加在 WebAssembly 的控制流指令之上,如 if 和 loop。但是每个块都用一个 Truffle AST 节点,称之为 Wasm 块节点,这减少了内存占用,因为每个块中的单个指令不需要单独的节点对象。此外,GraalWasm 块节点不会复制原始指令流的各个部分,而是仅将指针包含在 WebAssembly 二进制文件的字节数组中。 文本 WebAssembly、二进制 WebAssembly 与 GraalWasm AST 之间的对应关系在此数据结构之上实现的解释器是基于 AST 的解释器和基于位码的解释器之间的混合体。在较高的控制流级别上,它在适当的基本块之间分配。在每个基本块中,解释器在迭代该基本块的操作码的解释循环内完成。这种设计使转译更容易理解,并简化了部分评估。运行时,解释器和程序将传递到 Truffle 的局部评估引擎,然后该引擎将解释器专门用于程序,并将专门的代码传递给 GraalVM 编译器,最终为目标平台生成高效的汇编代码。关于 GraalWasm 的更多技术细节可以查看官方博客:https://medium.com/graalvm/announcing-graalwasm-a-webassembly-engine-in-graalvm-25cd0400a7f2开发团队还介绍了项目接下来的发展规划,其表示,GraalWasm 的动机之一是扩展 GraalVM 的 node.js 实现支持的 API 集,WebAssembly 支持的增加将使其能够实现加载 WebAssembly 二进制文件的 V8 兼容 API 功能。下一步将是实现 WebAssembly 系统接口(WASI),这对于在 Web 上下文外部运行 WebAssembly 程序是必需的。WASI 是一组 API,用于抽象化对各种操作系统功能的访问,例如文件 API、网络套接字和时钟。同时 GraalWasm 将专注于提高性能,初步实验和对多个 C 微基准的性能调整表明,与以最高优化水平进行编译的本地 GCC 二进制文件相比,GraalWasm 当前可实现约 0.5 倍至 0.75 倍的峰值性能。另一方面是改善 GraalWasm 中的调试支持,并将其与 GraalVM 的其余部分集成。
Node.js发明人敦促甲骨文放手JavaScript商标
Dev Class 报道称:作为 Node.js 和 Deno 的发起人,Ryan Dahl 已向甲骨文公司致去一封公开信,恳请该公司将 JavaScript 商标释放到公共领域。他写道:“这个商标已成为笼罩在世界上最流行的编程语言上的一片乌云,谨慎守法的工程师会竭力避免使用,并导致诸如 ECMAScript 之类让人感到困惑的术语的出现”。
node.js 13.9.0 发布:增加 DH 加密
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时。Node.js 使用高效、轻量级的事件驱动、非阻塞 I/O 模型。Node.js 的生态系统是目前最大的开源包管理系统。日前node.js 13.9.0 已发布,新特性如下。显着变化:async_hooks添加executeAsyncResource(Matteo Collina)#30959DH加密添加crypto.diffieHellman(TobiasNießen)#31178添加DH支持以生成generateKeyPair(TobiasNießen)#31178简化DH组(TobiasNießen)#31178添加密钥类型'dh'(TobiasNießen)#31178测试跳过手臂系统的Keygen测试(TobiasNießen)#31178perf_hooks将属性标志添加到GCPerformanceEntry(Kirill Fomichev)#29547处理报告memoryUsage()(Anna Henningsen)中的ArrayBuffer内存#31550readline使选项卡大小可配置(Ruben Bridgewater)#31318报告添加对worker的支持(Anna Henningsen)#31386worker添加从父线程获取堆快照的功能(Anna Henningsen)#31569另有其他220处更新,详见GitHub页。