開發與維運

開發與維運

Java 并发编程-不懂原理多吃亏(送书福利)

作者 | 加多 关注阿里巴巴云原生公众号,后台回复关键字“并发”,即可参与送书抽奖! 导读:并发编程与 Java 中其他知识点相比较而言学习门槛较高,从而导致很多人望而却步。但无论是职场面试,还是高并发/高流量系统的实现,都离不开并发编程,于是能够真正掌握并发编程的人成为了市场迫切需求的人才。本文中,作者加多以通俗易懂的方式讲解了多线程并发编程从入门到实践需要掌握的理论知识与实际操作方法。 学习并发编程 Java 并发编程作为 Java 技术栈中的一根顶梁柱,其学习成本还是比较大的,很多人学习起来感到没有头绪、无从下手。那么学习并发编程是否有一些技巧在里面呢? 为了让开发者从 Java 并发编程的苦海中解脱出来,大神 Doug Lea 特意为 Java 开发人员做了一件事情,那就是在 […]

開發與維運

springboot之rabbit – producer的confirm和consumer的ack模式

本篇和大家分享的是关于rabbit的生产和消费方的一些实用的操作;正如文章标题,主要内容如producer的confirm和consumer的ack,这两者使用的模式都是用来保证数据完整性,防止数据丢失。 producer的confirm模式 consumer的ack模式 producer的confirm模式 首先,有这样一种业务场景1:a系统在做活动前,需要给用户的手机发送一条活动内容短信希望用户来参加,因为用户量有点大,所以通过往短信mq中插入数据方式,让短信服务来消费mq发短信;此时插入mq消息的服务为了保证给所有用户发消息,并且要在短时间内插入完成(因此用到了异步插入方式(快速)),我们就需要知道每次插入mq是否成功,如果不成功那我们可以收集失败的信息后补发(因此confirm模式排上了用场);如图设计:在springboot中可以使用基于amqp封装的工厂类来开启confirm模式,然后通过RabbitTemplate模板来设置回调函数,如下代码: ///region producer生产 – confirm模式 public RabbitTemplate getRabbitTemplate(RabbitTemplate.ConfirmCallback confirmCallback) { return this.getRabbitTemplate(this.connectionFactory(), confirmCallback); } public RabbitTemplate

開發與維運

支付宝这些程序员要逆天,滑板、画漫画、写科幻小说、航拍,玩得太溜

他一边用代码改变世界,一边用科幻小说去创造未来。他一边用编程书写传奇,一边用画笔记录生活。他一边用程序驱动科技,一边用滑板挥洒汗水。他一边用产品推动技术,一边用航拍记录大地。他们是四位来自蚂蚁金服的普通程序员,代码有千万种可能,人生有万千种姿态,看起来高冷的 IT 男,背地里也可能是热血青年! 无论什么时候,都不能失去对生活的热情 当边柳出现在镜头前,很多人觉得他根本不是程序员,因为他那一头乌黑茂盛的头发,在脑后扎成一个发髻。但是边柳没有使用过防脱发的洗发水,秘籍很简单——做你所爱,无论什么时候都要保持对生活的热情。 边柳碰到很多人,他们可能只是把写程序当成一份工作,边柳不知道怎么去评价这些人,但是边柳知道自己和他们不一样,自己真的是因为热爱程序才来写程序,这不是一份工作,更多的是一份爱好,就像自己玩滑板一样。 在边柳的人生里,摇滚和滑板对他的影响特别大,用边柳的话来说这两样东西影响了自己的价值观。虽然摇滚已经没落,当年黑豹鼓手也过上了保温杯里泡枸杞的养生人生,但是自己依旧热爱,对于滑板也是一样。 相比于摇滚,边柳对滑板更有一份特殊的感情。虽然当一般同龄人在结婚生子、家里也催促边柳早点成家,但是边柳觉得不重要,工作之外他选择抱着滑板去到处游玩,追逐和沉浸在自己的爱好中。 “我并不是评价别人的生活怎样,我觉得一辈子这么短,应该去做自己喜欢的事情。我也不会去在乎别人的看法,就像滑滑板一样,总会在一些表演的时候摔倒,但是在摔倒之后你会不会爬起来继续的滑下去,是不是真的喜欢这件事情。别人的看法,不用太在意。” 我沉迷于游戏,但不是网瘾少年 在豆酱的生活里,编程只是其中的一部分,剩下的那一部分是游戏和漫画。豆酱热爱游戏,因为他是一个漫画家。自己喜欢编程,喜欢画漫画,正好可以结合一下,而游戏就是这个结合的载体。 虽然豆酱沉迷于游戏,但并不是网瘾少年。做游戏的 Mod 开发,和真实的写代码思路有一些不太一样。当你在玩游戏的时候,你会站在用户的角度来考虑某一个功能如何好用。但是如果站在游戏开发者的角度,你会考虑如何让用户觉得更好玩,他们的想法会有点区别。所以通过这种结合,豆酱会把自己一些创意想法直接做成 Mod 放进去,对自己的编程也是一种提练。 对于豆酱而言,游戏不仅是一个放松,更是对自己编程技术的提炼和升华。虽然编程占据了大部分时间,但是豆酱有自己的工作方式来尽可能的提升工作效率。 “工作里面有一些事情很重要,有些事情很紧急。你需要把自己的工作安排出来优先级,去优先解决紧急且重要的事情,尽量的把这些事情变得更加的顺畅,当你一点一点的去解决的时候,就会发现工作,其实很简单。就像写代码一样,当你要完成一个功能的时候,你发现你需要去做一些底层依赖的更新,当你一层一层的去更新完毕,把这些底层依赖都整理顺畅之后,你会发现一切问题都会迎刃而解。工作是这样,生活也是如此。” 他感觉自己是怀揣秘密的人 当愚道第一次听到“斜杠青年”的时候,他以为指的是程序员,因为程序员在代码的注释里会有两个斜杠。后来,愚道去百度了一下,才知道“斜杠青年”并不是指程序员,它指的是一个人有多重身份,用斜杠给分割开来。愚道就是这样的人,他不仅是一个程序员,还是一个怀揣秘密的科幻小说家。

開發與維運

杀手级AI补代码工具问世,支持23种语言、5种主流编辑器!(附链接)

本文经AI新媒体量子位授权转载,转载请联系出处。 文章来源:微信公众号 数据派THU 本文介绍了新开发出的“Deep TabNine“代码补全工具,支持多种编程语言和编辑器。 GPT-2,一个来自OpenAI的逆天语言模型,现在能用来补全代码了。 一位来自加拿大的大四学霸,开发了一款”Deep TabNine“代码补全工具,实现了这一大胆的想法。 它支持23种编程语言、5种编辑器,使用简单,效果惊艳。 不少使用过的网友说:TabNine是他们用过的最好的代码补全工具,这是属于程序员的杀手级应用。 在VS Code的扩展商店里,TabNine已经被下载1.3万次,获得全5星好评。 支持23种编程语言 Deep TabNine支持Java: Python: C++: Haskell: 不同于各种其他代码补全插件,Deep TabNine是根据程序员过去的习惯自动补全,并在后面给出几种选项的概率。

開發與維運

BAT程序员们常用的开发神器(附代码、教程)

来源:InfoQ 本文约6400字,建议阅读10+分钟。 工欲善其事必先利其器,善于利用各种开发工具同样可以事半功倍。 工欲善其事必先利其器,一个优秀的程序员除了代码写得好,善于利用各种开发工具同样可以事半功倍。以 BAT 为代表的各大厂程序员们在平时的工作中都用什么开发工具呢?我们盘点了大厂内部常用的开发工具,以供读者参考。本文涉及工具大部分为开源项目,大家可以按需选用。 阿里篇 ##一、Java 线上诊断工具 Arthas Arthas 是阿里巴巴 2018 年 9 月开源的一款 Java 线上诊断工具。 使用场景: 这个类从哪个

開發與維運

独家 | 一文读懂神经网络(附解读&案例)

作者:Matthew Stewart 文章来源:微信公众号 数据派THU 翻译:车前子 校对:陈丹 —- 本文的知识将提供一个强有力的基础,带你入门神经网络的性能,应用于深度学习应用。 “你的大脑并不产生思想。你的思想塑造了神经网络。”——Deepak Chopra 引文 J. Nocedal y S. Wright, “Numerical optimization”, Springer, 1999

開發與維運

超全Python速查表登上GitHub热榜,标星4600+!(附链接)

本文经AI新媒体量子位授权转载,转载请联系出处。 文章来源:微信公众号 数据派THU 哪里不会,抄查哪里。 GitHub上出现一份对Python用户非常友好的资源:Python Cheatsheet。 内含超全代码示例,只需“Ctrl+C”+“Ctrl+V”“Ctrl+F”就可以快速上手使用。 内容覆盖容器(Collections)、类型(Types)、语法(Syntax)、系统(System)、数据(Data)、库(Libraries)等等Python编程的主要类别,以及Advanced Python内容。 而且还有文本文件可以下载。 目前,这份资源已经获得4600+标星,登上了GitHub趋势榜。 核心是代码 这份资源中,核心是代码,基本没有废话。 比如说,在类型方面,只是简单地介绍了相关背景: 任何东西都是一个对象。 每一个对象都有一个类型。 类型和类是同义的。 然后就直接放代码了。 其他一些重要信息,也会提上一两句,对初学者也比较友好。 比如:

開發與維運

独家|手把手教你赋能Jupyter Notebooks!(附代码)

作者:Pranjal Chaubey 文章来源:微信公众号 数据派THU 翻译:宋文伯 校对:丁楠雅 本文将通过介绍Jupyter Notebook的附加扩展组件和指令,为Jupyter Notebook赋能。帮助Python使用者大大提高Jupyter Notebook的使用体验,提升工作效率。 简介 Jupyter Notebook是当今最受Python使用者(尤其是热衷于机器学习和数据科学的Python使用者)青睐的编译环境。我在数月以前首次接触机器学习时发现了这个神器,稍加使用后就被它深深吸引。然而,这种感觉很快就消失殆尽了,因为我发现Jupyter Notebook的界面非常单调,缺乏许多有用的功能。从那时起,我开始寻找一些可以在Jupyter Notebook中使用的黑科技,来满足一名Python使用者的日常所需。 在本文中,我将会介绍一些Jupyter Notebook的附加扩展组件和指令,进而帮助Python使用者大大提高Jupyter Notebook的使用体验,从而提升工作效率。 简而言之,本文将教你如何赋能Jupyter Notebook!

開發與維運

干货 | ACL 2019 知识图谱的全方位总结

来源:AI科技评论 文章来源:微信公众号 数据派THU —- ACL 2019已经结束,但其空前的规模仍然震撼人心:2900多篇提交论文,660篇被接收,3000多名会议注册人员,以及4个超过400人的研讨会(比一些国际CS会议都大)。 值得一提的是,在本届ACL中热门话题(例如BERT系列、Transformers、机器翻译等)受到热烈关注,但除此之外还有一些新的趋势,例如对抗学习、自然语言生成、知识图谱等。以知识图谱为例,本次会议中共有30篇接收论文,大约占了所有接收论文的5%。 会后总结是优秀学者的必要行动。随着ACL会议的结束,在网上已经先后出现了多篇关于ACL大会上各细分领域的总结文章。 例如来自德国Fraunhofer IAIS的研究科学家Michael Galkin近日便在Medium上发表了一篇关于知识图谱@ACL2019的总结文。 文章则围绕ACL大会上关于知识图谱(KG)的研究进行了详细且完整的探讨的内容,共包含五个部分,分别为: 基于知识图谱的对话系统 知识图谱事实的自然语言生成 基于知识图谱的问答 基于知识图谱的NER和关系链接 知识图谱嵌入和图表示 一、基于知识图谱的对话系统 对话系统,传统上分为目标导向agent和闲聊agent两种。所谓目标导向agent,即帮助用户去完成某项任务,例如帮忙预定餐桌或安排代驾等。闲聊agent即智能对话,具有互动性、娱乐性和话题性。 近来,我们可能听到太多关于深度神经网络构建端到端(不需要特定通道)对话系统的工作。然而,现在越来越明显的一个趋势就是,无论在目标导向还是闲聊的agent中都需要拥有一些知识,前者需要领域知识,后者需要常识知识。

開發與維運

干货 | 关于机器学习的知识点,全在这篇文章里了

作者:尘恋 文章来源:微信公众号 数据派THU [ 导读 ]作者用超过1.2万字的篇幅,总结了自己学习机器学习过程中遇到知识点。“入门后,才知道机器学习的魅力与可怕。”希望正在阅读本文的你,也能在机器学习上学有所成。 准备 机器学习是什么,人工智能的子类,深度学习的父类。 机器学习:使计算机改进或是适应他们的行为,从而使他们的行为更加准确。也就是通过数据中学习,从而在某项工作上做的更好。 引用王钰院士在2008年会议的一句话,假定W是给定世界的有限或者无限的所有对象的集合,Q是我们能够或得到的有限数据,Q是W的一个很小的真子集,机器学习就是根据世界的样本集来推算世界的模型,使得模型对于整体世界来说为真。 机器学习的两个驱动:神经网络,数据挖掘。 机器学习的分类: 监督学习:提供了包含正确回答的训练集,并以这个训练集为基础,算法进行泛化,直到对所有的可能输入都给出正确回答,这也称在范例中学习。 无监督学习:没有提供正确回答,算法试图鉴别出输入之间的相似,从而将同样的输入归为一类,这种方法称密度学习。 强化学习:介于监督和无监督之间,当答案不正确时,算法被告知,如何改正则不得而知,算法需要去探索,试验不同情况,直到得到正确答案,强化学习有时称为伴随评论家的学习,因为他只对答案评分,而不给出改进建议。 进化学习:将生物学的进化看成一个学习过程,我们研究如何在计算机中对这一过程进行建模,采用适应度的概念,相当于对当前解答方案好坏程度的评分。(不是所有机器学习书籍都包含进化学习) 优点:泛化,对于未曾碰到的输入也能给出合理的输出。 监督学习:回归、分类。 机器学习过程: 数据的收集和准备

Scroll to Top