精华内容
下载资源
问答
  • 微软宣布加入 OpenJDK,打不过就改变 Java 未来 微软的 Bruno Borges 在 OpenJDK 邮件列表中发布了一条消息,内容包含接下来发生的事情以及微软如何开始将其团队整合到 OpenJDK 社区。 在邮件中,Bruno Borges 提到...

    微软宣布加入 OpenJDK,打不过就改变 Java 未来

    微软的 Bruno Borges 在 OpenJDK 邮件列表中发布了一条消息,内容包含接下来发生的事情以及微软如何开始将其团队整合到 OpenJDK 社区。

    在邮件中,Bruno Borges 提到,微软已正式签署《Oracle 贡献者协议》。同时,他重申了微软对 Java 的承诺,以及微软团队对回馈 Java 社区的期待。

    Borges 曾经是 Oracle 开发人员,现在担任微软 Java 的首席产品经理。他向大家介绍了 Java 工程团队负责人 Martijn Verburg,Verburg 同时也是 jClarity 的首席执行官,而 jClarity 是 AdoptOpenJDK 的主要贡献者,于今年 8 月被微软收购。

    该邮件可以在 OpenJDK 邮件列表中找到:
    嗨,OpenJDK 社区,

    在过去的一周中,微软正式签署了《Oracle 贡献者协议》,甲骨文公司对我们参与该项目表示了认可及欢迎。我代表微软 Java 工程团队,很高兴正式加入 OpenJDK 项目,并期待与你们的合作。

    众所周知,微软及其子公司在许多方面都高度依赖 Java,并且在微软 Azure 云中向客户提供 Java 运行时服务。微软已经认识到在甲骨文成功有效管理下的 OpenJDK 项目所获得的巨大价值,它收购了 Java,得到了更广泛的软件生态系统,我们也期待做出自己的一份贡献。

    我们团队在初期将致力于一些小的 bug 修复和反向移植,这有助于我们更好地成为 OpenJDK 的一员。例如,我们已经了解到,在发布补丁之前最好先讨论更改,并且我相信我们还有很多东西要学习。

    由 Martijn Verburg 领导的 Java 工程团队已经与其他使用 Java 的微软组织及子公司,还有一些 Java 生态系统中的合作伙伴(例如 Azul Systems、Oracle、Pivotal、Red Hat、Intel、SAP 等)合作。整个团队将加入一些 OpenJDK 邮件列表并参与会话。

    我们期待参与 Java 的未来。

    微软首次向 OpenJDK 贡献代码是在 2014 年,贡献内容关于 Windows 上 TCP 回环快速路径机制方面的优化。

    2018 年 10 月,甲骨文计划将 OpenJDK 的源码库迁移至 GitHub,彼时的 GitHub 刚刚被微软收购,此后微软与 OpenJDK 的关系也更进了一步。

    此次微软将为 OpenJDK 做贡献的消息发出后,也有网友(id:yanglbme)梳理了二十多年来微软与 Java 的一二事。

    1996 年,微软推出 J++ 语言,并推出了 Visual j++ 集成编程工具,对 Java 进行了大量的修改。

    1997 年,Sun 公司以 “歧视使用 Java 软件,旨在维持其视窗操作系统的垄断地位,违反反垄断法” 为由起诉微软。

    2001 年 1 月,SUN 胜诉,根据双方达成的和解协议,微软不得对 Windows 操作系统中包含的 Java 语言作任何改动,并获赔 2000 万美元。

    2001 年年底,微软在推出新版操作系统 Windows XP 和新版 IE 时,故意不安装 Java 软件,并且推出高仿 Java 的语言 C# 和 .net 框架。

    2002 年 6 月,微软称从 2004 年起,因为安全原因微软的 Windows 操作系统将不再支持 Java 语言。

    2019 年 10 月,微软宣布加入 OpenJDK 参与开发。

    来源:https://jaxenter.com/microsoft-ready-contribute-openjdk-163550.html

    展开全文
  • 我代表微软 Java 工程团队,很高兴正式加入 OpenJDK 项目,并期待与你们的合作。 我们期待参与 Java 的未来。 微软首次向 OpenJDK 贡献代码 是在 2014 年,贡献内容关于 Windows 上 TCP 回环快速路径机制方面的优化...

    640?wx_fmt=jpeg

    近日,微软的 Bruno Borges 在 OpenJDK 邮件列表中发布了一条消息,内容包含接下来发生的事情以及微软如何开始将其团队整合到 OpenJDK 社区。
    在邮件中,Bruno Borges 提到,微软已正式签署《Oracle 贡献者协议》。同时,他重申了微软对 Java 的承诺,以及微软团队对回馈 Java 社区的期待。
    Borges 曾经是 Oracle 开发人员,现在担任微软 Java 的首席产品经理。他向大家介绍了 Java 工程团队负责人 Martijn Verburg,Verburg 同时也是 jClarity 的首席执行官,而 jClarity 是 AdoptOpenJDK 的主要贡献者,于今年 8 月被微软收购。
    该邮件可以在 OpenJDK 邮件列表中找到:
    嗨,OpenJDK 社区,

    在过去的一周中,微软正式签署了《Oracle 贡献者协议》,甲骨文公司对我们参与该项目表示了认可及欢迎。我代表微软 Java 工程团队,很高兴正式加入 OpenJDK 项目,并期待与你们的合作。

    我们期待参与 Java 的未来。

    微软首次向 OpenJDK 贡献代码是在 2014 年,贡献内容关于 Windows 上 TCP 回环快速路径机制方面的优化。

    此次微软将为 OpenJDK 做贡献的消息发出后,也有网友(id:yanglbme)梳理了二十多年来微软与 Java 的一二事:https://juejin.im/post/5dbaac8cf265da4d365f28a6
    1996 年,微软推出 J++ 语言,并推出了 Visual j++ 集成编程工具,对 Java 进行了大量的修改。

    1997 年,Sun 公司以“歧视使用 Java 软件,旨在维持其视窗操作系统的垄断地位,违反反垄断法”为由起诉微软。

    2001 年 1 月,SUN 胜诉,根据双方达成的和解协议,微软不得对 Windows 操作系统中包含的 Java 语言作任何改动,并获赔 2000 万美元。

    2001 年年底,微软在推出新版操作系统 Windows XP 和新版 IE 时,故意不安装 Java 软件,并且推出高仿 Java 的语言 C# 和 .net 框架。

    2002 年 6 月,微软称从 2004 年起,因为安全原因微软的 Windows 操作系统将不再支持 Java 语言。
    ...
    2019 年 10 月,微软宣布加入 OpenJDK 参与开发。

    来源:https://jaxenter.com/microsoft-ready-contribute-openjdk-163550.html

    转自:https://www.oschina.net/news/111036/microsoft-to-participate-in-openidk

    - END -

    推荐阅读:

    展开全文
  • NuGet 原本提供了生成源码包的功能。不过,NuGet 原生的源码包仅用于调试时自带调试信息和调试源码。 本文将以最简单的方式制作一个源码引用包。安装 NuGet 包后,不会生成任何程序集引用,而是相当于将源码直接放...

    NuGet 原本就提供了生成源码包的功能。不过,NuGet 原生的源码包仅用于调试时自带调试信息和调试源码。

    本文将以最简单的方式制作一个源码引用包。安装 NuGet 包后,不会生成任何程序集引用,而是相当于将源码直接放入被安装的程序集中一样。


    准备工作

    我们需要一个可以用来打 NuGet 包的 .NET Core 项目,只需要在 Visual Studio 中新建一个即可。在本例中,我的项目名字是 Walterlv.Demo。

    将源码加入 NuGet 包

    项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 中,我说到了项目文件中的各种 NuGet 属性。在本文中,我们将使用到其中的一部分。

    这些属性将设置到项目文件 Walterlv.Demo.csproj 中。

    <!-- 将源码引入包中。 -->
    <IncludeSource>true</IncludeSource>
    <!-- 如果指定为 true,那么生成的 dll 将拷贝到 NuGet 包的 tools 目录下。 -->
    <IsTool>true</IsTool>
    

    为了避免将打出来的 NuGet 包作为 dll 被安装的程序集引用,我们需要设置 <IsTool>true</IsTool> 属性。这样,生成的 dll 将只会放入 tools 文件夹中,而不会被引用。

    这时,项目的 csproj 文件像这样:

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <TargetFramework>netstandard2.0</TargetFramework>
        <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
        <IncludeSource>True</IncludeSource>
        <NoPackageAnalysis>true</NoPackageAnalysis>
        <IsTool>True</IsTool>
        <DevelopmentDependency>true</DevelopmentDependency>
      </PropertyGroup>
      
    </Project>
    

    设置后编译项目,我们将在输出目录得到 Walterlv.Demo.nupkg 和 Walterlv.Demo.1.0.0.symbols.nupkg 两个文件。

    在这里插入图片描述

    这种带后缀形式的包在只是 NuGet 的辅助包而已,不是主包。在 How to create NuGet symbol packages - Microsoft Docs 中说明这种 symbols 的包只是用于调试的。然而,我们需要的是将其作为直接引用的主包。这种情况下,Walterlv.Demo.nupkg 因为不能满足我们的目的,所以我们并不能使用它。所以,我们需要做的是,将 Walterlv.Demo.1.0.0.symbols.nupkg 变成主包。

    于是,我们编写一个 <Target /> 将 symbols 包替换主包:

    <Target Condition="$(IncludeSource) == 'True' Or $(IncludeSymbols) == 'True'" Name="UseSymbolsInsteadOfLib" AfterTargets="GenerateNuspec">
      <Delete Files="$(PackageOutputAbsolutePath)$(PackageId).$(PackageVersion).nupkg" />
      <Move SourceFiles="$(PackageOutputAbsolutePath)$(PackageId).$(PackageVersion).symbols.nupkg" DestinationFiles="$(PackageOutputAbsolutePath)$(PackageId).$(PackageVersion).nupkg" />
    </Target>
    

    这里使用到了 <Delete /><Move /> 两个自带的 Task,用于将功能不全的主包删除,然后将我们的源码包替换成为主包。我此前写过 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target 介绍了一些自带的 Task。如果你想了解更多 <Target /> 编写相关的知识,也可以阅读这篇文章。

    在增加了上面的一段 <Target /> 之后,最终我们将只会得到一个 NuGet 包,打开后能发现其中包含源码。

    在这里插入图片描述

    安装 NuGet 包时引入源码

    为了让源码能随着包的安装加入到目标项目,我们需要 targets 文件来将源码引入。

    在项目中新建 Assets 文件夹,这将用来放即将存入 NuGet 包中的文件。新建 Assets\build\Package.targets 文件,这个文件会被自动引入到被安装的项目中。

    在这里插入图片描述

    于是我们在 csproj 中额外添加一些代码将这个文件在打包时改名为正确的名称。

    <ItemGroup>
      <None Include="Assets\build\*.targets" Pack="True" PackagePath="build\$(PackageId).targets" />
    </ItemGroup>
    

    于是,整个 csproj 文件看起来是这样:

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <TargetFramework>netstandard2.0</TargetFramework>
        <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
        <IncludeSource>True</IncludeSource>
        <NoPackageAnalysis>true</NoPackageAnalysis>
        <IsTool>True</IsTool>
        <DevelopmentDependency>true</DevelopmentDependency>
      </PropertyGroup>
      
      <ItemGroup>
        <None Include="Assets\build\*.targets" Pack="True" PackagePath="build\$(PackageId).targets" />
      </ItemGroup>
    
      <Target Condition="$(IncludeSource) == 'True'" Name="UseSymbolsInsteadOfLib" AfterTargets="GenerateNuspec">
        <Delete Files="$(PackageOutputAbsolutePath)$(PackageId).$(PackageVersion).nupkg" />
        <Move SourceFiles="$(PackageOutputAbsolutePath)$(PackageId).$(PackageVersion).symbols.nupkg" DestinationFiles="$(PackageOutputAbsolutePath)$(PackageId).$(PackageVersion).nupkg" />
      </Target>
    
    </Project>
    

    而至于我们刚刚新建的 Package.targets 文件中,我们也需要为目标项目填写一些内容:

    <Project>
    
      <Target Name="WalterlvDemoIncludeSource" BeforeTargets="CoreCompile">
        <Message Text="$(MSBuildThisFileDirectory)..\src\Walterlv.Demo\**\*.cs" />
        <ItemGroup>
          <Compile Include="$(MSBuildThisFileDirectory)..\src\Walterlv.Demo\**\*.cs" />
        </ItemGroup>
      </Target>
    
    </Project>
    

    这样,一旦目标程序集安装了这个 NuGet 包,便会将所有的 cs 文件加入到目标项目的编译中。

    在这里插入图片描述


    我的博客会首发于 https://blog.walterlv.com/,而 CSDN 会从其中精选发布,但是一旦发布了就很少更新。

    如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。

    知识共享许可协议

    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://walterlv.blog.csdn.net/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

    展开全文
  • 编程是一种技艺。——《程序员修炼之道》 ...打不过就加入,有哪些方便获取的国外计算机学习资源呢?博文菌给大家带来一些靠谱安利。 ▼ 01 ACM数字图书馆 ACM(Association for Computing M...

     

    编程是一种技艺。——《程序员修炼之道》

    大家为了提升自己的编程能力,总是在寻求各种资料不断学习。信息获取的门槛越来越低,但靠谱的来源却未必如此。

    在你还在纠结到底去哪里找靠谱学习资料的时候,有一些年轻人不讲武德,早早用上了优质资源学习,开足马力升职加薪了。

     

    这种行为实在是过分,还能不能一起愉快做编程人了?打不过就加入,有哪些方便获取的国外计算机学习资源呢?博文菌给大家带来一些靠谱安利。

    01 ACM数字图书馆

    ACM(Association for Computing Machinery),中文译名国际计算机学会。ACM是全世界计算机领域影响力最大的专业学术组织,大家所熟知的图灵奖(A.M. Turing Award)也是由ACM评选的。

    作为这样一个顶尖的学术组织,ACM自然也拥有自己的数字图书馆,内容十分丰富。

     

    ACM数字图书馆

    ACM的数字图书馆内含众多计算机领域的学习资源,包含50多种经同行评审的学术期刊、7本杂志以及ACM系列书籍,全面涵盖各个计算机领域,重点是学术研究专著和研究生级教科书。

    一个词形容,那就是专业

     

    数字图书馆部分内容

    ACM的数字图书馆为付费使用。不过在今年的3月份,由于疫情发生,曾经免费向公众开放过3个月。

    官网链接:https://dl.acm.org/

    02 Coursera

    Coursera是一个大型公开在线课程项目,由美国斯坦福大学两名计算机科学教授创办。Coursera与众多知名高校联合,在线提供网络公开课程。

     

    Coursera首页

    Coursera课程中有不少优质的计算机相关内容,有单独课程和系列课程可供学习。Coursera目前虽然拥有中文网站,但大部分的教学内容还是英文,对学习者的英文水平有一定要求。

     

    部分Coursera课程

    Coursera的课程旁听完全免费,不过若想获得一部分练习内容和结业证书,则需要支付相应的课程费用。

    官网链接:https://www.coursera.org/

    03 edX

    edX是麻省理工和哈佛大学于2012年联手创建的大规模开放在线课堂平台。平台内含大量免费课程,质量都很高,MIT以及哈佛的公开课很多只能在edX上获取。

     

    edX首页

    edX部分课程提供多种语言版本,在报名学习的时候需要留意详情页。

    官网链接:https://www.edx.org/

    04 博文视点学院

    以上推荐的国外计算机相关学习资源,资源都很优质,但基本上都对学习者的英文水平有所要求,很容易让人望而却步。

    解决了资源问题,却又陷入了学习困境。

     

    如果对你来说,直接学习英文资源比较吃力,也可以来看博文视点学院目前还在更新的系列专栏,不仅内容也同样优质,而且全系列永久免费!

    专栏内有大量国外知名开发者的前沿技术视频,并且由优质作者知秋进行了汉化,中文字幕轻松获取,观看无压力。视频翻译质量大家一看便知,无需多言。

    最重要的是,视频内容会涉及大家平常开发中最感兴趣的一些方面,每年坚持动态更新。

    立即免费订阅

     

    配套学习书籍,同时也是汉化者 知秋老师的最新力作:

     

    • 包含配套视频和源码
    • 一本成体系的、传授编程思想和技巧的响应式编程学习图书

    本书主要专注于解读Spring Reactor 3的代码设计与实现,以揭示其中的设计精髓,帮助大家灵活运用及提升代码设计思维。本书是学习响应式编程非常好的参考资料,是成体系的、传授编程思想和技巧的图书。

    对于英语不太好的同学,不必忧虑于语言问题,可以畅快学习啦!

     

    大家还有哪些希望看到的学习资源内容,快留言告诉博文菌吧!我们会选取呼声高的课程,尽快给大家安排~

     

    展开全文
  • Java Rookie

    2020-12-09 04:06:06
    <div><p>打不过就加入。</p><p>该提问来源于开源项目:FrankKai/FrankKai.github.io</p></div>
  • 但是普通用户打开没有权限,切换root用户,给普通用户权限也是失败的,所以打不过就加入它 这个自动mount的文件夹的所有者为root,所属的组是vboxsf,所以需要将当前登录用户加入到vboxsf组就行了。 执行 sudo ...
  • @IT程序猿 微博网友评论:@变数的变数:EDGE:打不过就加入他@杜宇80后:没有ie,你拿什么下载chrome……哼@蒙奇桃桃:好奇为什么ie这么慢@朕朕:还是最爱火狐最后欢迎关注【...
  • CC2530 串口打印log

    千次阅读 2016-12-06 10:51:28
    2530的仿真器运行过程中不能打断点,所以很多时候,串口打印log很重要了,花了点时间,做了一个debug的打印代码,加上可变参数,不过因为只是用来打印log的,没有用来接收,所以只有发送,用的是寄存器直接发送,...
  • 本着打不过就加入的原则,本文就为你分享一些学习深度学习的必备知识。 Ai是智能的程序,在深度学习出来之前,主流方法是机器学习的方法。可以说深度学习是机器学习的子集。机器学习中本就有名为感知机(单层线性...
  • 最近做课程设计时需要完成进程间的通信,但是尝试消息链表进行通信后发现,出于某种原因和MessageBox冲突,泪目,打不过就加入,还是用共享内存吧???? 主要思路就是将数据写入共享内存,然后通过信号量机制通知进程...
  • 打不过就加入也许是传统商超面对社区团购的冲击时一个不错的选择,但对于永辉和盒马这类正在摸索新零售模式的商超来讲,社区团购的冲击会威胁到新零售商超的生存吗? 体量与质量,统一赛道下的分轨而驰 如今国内的...
  • 爱好

    2020-09-30 09:04:01
    都说打不过就加入他们,对我影响最大的就是英雄联盟这个游戏了。从ig18年夺冠到fpx19年夺冠,再到现在的tes。中国的战队渐渐的知道了游戏分析师的重要性。我虽然现在是一个小白,但是我相信在这个学习氛围的环境下,...
  • Tomcat的NIO线程模型

    2021-04-22 18:18:16
    说的也是o(╥﹏╥)o,打不过就加入 所以,我今天也只是分享一种自己比较容易记住的方式,来记住Tomcat的NIO模型,便于自己以后跟别人吹水,同时也分享一下,还请各位看官勿喷 Tomcat的NIO线程模型 Tomcat有三种模型...
  • 根据郭神语录总结出来的郭神版本线段树模板虽然在可读性方面比kb不知道高到哪里去了,但无奈还是用的人太少,打不过就加入吧。写完以后瞬间清楚了好多,继续加油。 cf这一场真的是无语+无语+无语,我...
  • 这样会打印sql,不过这样日志那边会出现很多其他消息 第二种就是单独给dao下目录配置debug模式,代码如下,这样配置sql语句会打印,其他还是正常info级别: 如果使用的是application.properties文件,加入如下...
  • SpringBoot 通过AOP代理简单打印日志

    千次阅读 2017-02-22 21:10:30
    前言刚加入新公司,一来项目组长让我带3个实习生,也是鸭梨山大啊。今天在旁边看他们写代码,感觉基础的能力还是可以的,不过技术上面还是有不少欠缺的啊。 比如:项目组长让他们把Service层,每个方法都要加上...
  • 在SVN中分支

    千次阅读 热门讨论 2015-03-19 12:19:05
    项目开发中一个版本或许有几次迭代,而完成一次迭代或一个版本时,通常会讨论下一步的计划,是否要加入新东西新技术,内部人员是否有变动,这时需要在管理工具中做一些备份,以防我们接下来即使修改服务器上东西不...
  • 思路:如果可以要求提供一个空间来存储链表结点的话,这道题再简单不过了。可以先创建一个栈,然后从头到尾遍历链表,遍历时把结点加入到栈内;最后不断从栈弹出结点,可达到从尾到头打印链表。
  • 个勾,,在word中好像可以通过选择字符插入类似的操作... 但因为对微软的日渐不满,,所以还是想了其它的办法 听说可用alt键加入小键盘的数字输入 如"√"就是 alt加上小键盘的41420 不过为什么这样呢? 后来...
  • 这道题其实之前见到过,不过当时一样看过来觉得好像有点麻烦,于是跳过去做别的题目了????。不过既然今天见到了这题,那动动手做了吧! 其实真要做起来,难度也不会很大,无非就是一直改变读数字的方向,一排一...
  • 1. 发短信: <a href="sms:12345678902">联系客服</a> 2. 拨打电话: 我看到其他文章有讲到要在head的meta标签加上这个(不过我自己做项目的时候没有加 ,也...只要加入 tel: 可以调起以下这些功能,超
  • 周末纠结了会,上网搜了一会,也没有解决办法,最后跑出去了几盘dota。周一早晨来解决问题,还好,一大早的给搞定了。成功扫描了微信的手机下载二维码。由于以前都是做android开发,现在突然接触ios开发,才不过...
  • 对log4j的%l参数进行分析后,发现对.java作链接再简单不过,按"java文件名:行号"的格式打印可以。   代码如下: public class Test{ public static void main(String[] args){ System.out....
  • 死也要学好图形学

    2005-01-26 12:38:00
    天生对视觉狂热的我,本来觉得加入软件开发行列将来就是去开发Windows XP,Adobe Creative Suit(CS),Sim city 4等华丽的软件,不过后来意识到加入这些高度商业化的大公司的机会真是微乎其微.况且从多处看到软件行业似乎...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 266
精华内容 106
关键字:

打不过就加入