石墨文档 说完了腾讯文档,再说这个石墨文档,打着协同办公的旗号,API都没有公布,想要使用,直接就要联系销售人员,也不知道有人多人用,根本不知道水有多深,反正我一般连文档都没有公布,就直接放弃了。...要快速学习一个东西最好的地方是官网,Google Docs API 官网 这一个观点应该是所有技术人员的共识,但却有很多技术人员学习一个新工具的使用,总是去一些第三方,或者从乱七八糟的论坛开始。...在尝试了三四个晚上后,我决定放弃, 放弃从Python和Node.js 的demo开始,因为相比Python和Node.js 我最擅长的在浏览器端使用JS 直接调用API,所以在一阵曲折的探索后,我确定了以...Browser为基栈的产品开发,即在浏览器端直接使用JavaSript调用Google Docs API的开发方式,下图即使我运行官方Browser Demo的结果,输出结果非常完美,当然这是在搭乘小飞机的情况下..., 这里是阮一峰的博客,大家可以用来参考 官方关于OAuth2.0在谷歌API中的使用 我翻译的中文文档 在清楚了OAuth2.0后,我就知道了为什么调用一些接口报没有权限。
介绍当我们浏览网页、使用手机应用或与各种互联网服务交互时,我们经常听到一个术语:“RESTful API”。它听起来很高深,但实际上,它是构建现代网络应用程序所不可或缺的基础。...自描述性: API响应应该包含足够的信息,以便客户端能够理解如何使用该响应。为什么选择PHP构建RESTful服务?现在您可能想知道,为什么选择PHP来构建RESTful服务呢?...然后,我们从请求的主体中获取提交的数据,并将其解析为关联数组。接下来,我们连接到数据库,并准备执行插入操作的SQL语句。我们使用PDO来执行插入操作,以防止SQL注入攻击。...然后,我们从请求的主体中获取提交的更新数据,并获取要更新的资源ID。接下来,我们连接到数据库,并准备执行更新操作的SQL语句。我们使用PDO来执行更新操作,以防止SQL注入攻击。...例如,如果客户端提交的数据不合法,则可以返回400 Bad Request响应。如果客户端尝试访问未经授权的资源,则可以返回401 Unauthorized响应。
目录 1、引言 2、OAuth2.0是什么 3、OAuth2.0怎么写 1、引言 本篇文章是介绍OAuth2.0中最经典最常用的一种授权模式:授权码模式 非常简单的一件事情,网上一堆神乎其神的讲解,让我不得不写一篇文章来终结它们...举个例子,你想登录豆瓣去看看电影评论,但你丫的从来没注册过豆瓣账号,又不想新注册一个再使用豆瓣,怎么办呢?不用担心,豆瓣已经为你这种懒人做了准备,用你的qq号可以授权给豆瓣进行登录,请看。...http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html 第一步:在豆瓣官网点击用qq登录 当你点击用qq登录的小图标时,实际上是向豆瓣的服务器发起了一个...由于豆瓣只关心像qq发起authorize请求后会返回一个code,并不关心qq是如何校验用户的,并且这个过程每个授权服务器可能会做些个性化的处理,只要最终的结果是返回给浏览器一个重定向并附上code即可...我在github上分享了一个我自己模拟的简单的不能再简单的oauth2.0,大家可以参考一下,仅仅用于了解oauth的过程,可别用于公司哦,不然老板得开除你。
会解释怎样使用逻辑回归,随机森林,AWS和自动化脚本,但都不会深入。本文更多的是理论而非实践。 如果你是一个非技术人,这篇文章仍然适合你,只不过要多花费一点时间和精力。...文章里的这些方法大部分都很枯燥,这就是为什么我要用自动化脚本来实现它们的原因。 走起,我将从结果开始,然后解释我是如何做到的。 我做了什么 在今天这个数字时代,Instagram用户数是一种财富。...此外,你一天在Instagram上最多只可以被7500人关注;而且经过大量的测试,我发现你可以在一天内关注400人,取关400人。...接下来,我选择使用随机森林算法对后续的结果进行分类。最初,我并没有设置结构或结果变量,而是使用了许多不同的决策树,因为我想得到它们的可视流程图。随机森林是决策树的增强,纠正单个树中存在的不一致性。...我可以开始享受我的生活,认真的工作,和朋友出去吃饭、看电影,并不需要花费时间去手动发帖。当我忙于自己的事时,它能完全托管我的账户。
0x00:介绍 最近,当我正在进行侦察时,我遇到了一个Atlassian Crowd应用程序。...在搜索了一下之后,我找不到任何针对该漏洞的概念验证,因此我决定对其进行分析并尝试创建一个。 0x01:分析 我开始克隆插件的源代码,可以在这里找到。...服务器应该响应400 Bad Request: ? 让我们尝试利用我们迄今为止的知识上传标准插件。...从结果中我们可以看出,它成功安装了插件; 所以我们应该能够创建和安装我们自己的插件,对吗?...0x02:尝试2 这次我决定尝试使用Content-Type来上传我的恶意插件multipart/mixed。也许这会奏效吗?
这个过程对我来说像是冥想——从visdom的界面开始,循环损失函数。 4.当训练的进程和结果变得越来越有意思时,提高检查点的保存频率。...不要闲置其中的任何一个—— 否则你可能会发现一些有趣的多无,比如说当生成器尝试再生成输入图像时。 7.在默认设置中,CycleGAN的参数设置为实例正则化和批处理量大小为1。...第一个模型在灰度级中使用批量标准化的方法,在这两组素描图画之间进行转换。下一个模型对第一个模型的结果进行了升级和着色。 注意过度纹理,特别是在修补补丁时。...我有在1024/800/400规格上训练的模型 - 有时从头开始,有时从某一个尺寸开始,然后随着训练的进行而改变它。 数据集是十分重要的 不要忘记数据集!...即使我开始尝试新型的GANs,CycleGAN仍然是生成流程的一部分:现在我将GANs的输出链接到CycleGAN,以便与传统的CV技术相结合,超分辨率和着色。
从Instagram的用户名构造分析中发现两个“幽灵账户” 在我对Instagram的安全研究中发现,Instagram在其后端数据库中,使用了简单的主键标识符(Primary Key ID,PKID)...后来,我发现当PKID为3或4时,其指向的对应账户为Instagram创始人之一的Mike Krieger。...我的想法是,这两个账户是在Instagram的初始测试阶段创建的,但当时它只不过是一个alpha版本,为什么到现在这种测试账户还未被删除,仍然存在Instagram的后端数据库中呢?...由此我想到了一个点子:可以利用服务器后端对不当格式畸形数据的错误解析,来触发Instagram应用程序的崩溃。那要是能远程让其他Instagram用户发生崩溃,是不是就更有意思了呢?...这很大可能是由于Instagram后端在解析“幽灵用户”用户名时,其中的空字符串(””)引发的解析错误所导致的,以下是我从崩溃事件中的截获的事件记录: 漏洞影响 目前,该漏洞仅在Instagram for
这就是为什么,当谷歌在2015年11月开源TensorFlow时,我非常兴奋,知道是时候开始学习之旅了。不想过于夸张,但对我来说,这就像是普罗米修斯从机器学习的奥林匹斯山上将火种赠予人类。...在我脑海中,整个大数据领域,以及像Hadoop这样的技术,都得到了极大的加速,当谷歌研究人员发布他们的Map Reduce论文时。...这一次不仅是论文,而是实际的软件,是他们在多年的发展之后所使用的内部工具。 因此,我开始学习机器学习基础知识,发现初学者需要更通俗易懂的资源。这是我尝试提供的。...它们使用一种称为“梯度下降”的算法,尝试向正确的权重和偏置值迈进,以最小化损失函数。 这两个新图表可以帮助你在调整模型参数(权重和偏置)时跟踪误差值。...这就是为什么我模拟了它的视觉风格。我希望您会觉得准备充分,并且了解这个系统以及它的工作原理。如果您想开始尝试编写代码,请随时从入门教程开始,它教一个神经网络如何识别手写数字。
这就是为什么,当谷歌在2015年11月开源TensorFlow时,我非常兴奋,知道是时候开始学习之旅了。不想过于夸张,但对我来说,这就像是普罗米修斯从机器学习的奥林匹斯山上将火种赠予人类。...在我脑海中,整个大数据领域,以及像Hadoop这样的技术,都得到了极大的加速,当谷歌研究人员发布他们的Map Reduce论文时。...这一次不仅是论文,而是实际的软件,是他们在多年的发展之后所使用的内部工具。因此,我开始学习机器学习基础知识,发现初学者需要更通俗易懂的资源。这是我尝试提供的。从这里开始让我们从一个简单的例子开始。...如果您现在开始学习《MNIST 机器学习初学者》,并遇到了这张图:我写这篇文章是为了让没有机器学习经验的人们为 TensorFlow 入门教程中的这张图做好准备。这就是为什么我模拟了它的视觉风格。...我希望您会觉得准备充分,并且了解这个系统以及它的工作原理。如果您想开始尝试编写代码,请随时从入门教程开始,它教一个神经网络如何识别手写数字。
我做了一个快速的A/B测试,就这样,我收到的应聘公司的回复率从2-3%增加到了10%。 在发送的大约500封应聘电子邮件中,我收到了大约50份回复,其中一小部分给了我电话面试的机会。...例如,你如何从头开始重新开发Instagram?(我在Facebook面试时曾被问到这个问题)。我的专业背景是API设计和服务导向式架构。...我一开始讲的是我想在我自己的Instagram版本中加入的一些功能:赞、上传照片和简单的时间线。功能范围使我能够构建一个非常可靠的API,因为我非常了解这些场景。...例如,为什么要使用Cassandra而非MySQL来存储某些信息,为什么要使用OAuth而不是通过简单的认证,是使用Cassandra还是Memcached来缓存数据,是使用流媒体还是批处理处理等等。...你所需要的只是一次成功,这种安慰给了我很大的信心,让我能够不断尝试,当我拿到第一个Offer之后,后来的其它Offer来得就会容易很多。
1. http响应码 我们都知道,http响应码是有它的标准含义的,一般而言,笔者建议遵守这个标准,http响应码从1XX到5XX都有其特定的意义,但在Rest Api中,使用最多的可能还是以2XX和4XX...2.2 笔者的思考 最近在设计一个API时,笔者本来也按旧有的方式,继续按照上述做法来弄,因为以前是这样弄的。但后面仔细想想,就问了下自己:为什么这样,理由是什么?...上述方式的一个优点在于,对于调用方而言,减少对状态码的关注与处理,只处理响应为200的情况就可以了。但除了这个优点,我暂时想不出这种模式有其它优点。...而没有特别设计的,则考虑使用400 规则3:对于4XX的响应,再额外使用业务错误码来表示更进一步的业务上的错误含义 规则4:使用字符来表示业务错误描述码。...当然,也有不是这样做的,比如instagram的API,它是通过meta字段来区分业务上的正确与错误 ? 你是如何想的?,见仁见智吧
这就是为什么,当谷歌在2015年11月开源TensorFlow时,我非常兴奋,知道是时候开始学习之旅了。不想过于夸张,但对我来说,这就像是普罗米修斯从机器学习的奥林匹斯山上将火种赠予人类。...在我脑海中,整个大数据领域,以及像Hadoop这样的技术,都得到了极大的加速,当谷歌研究人员发布他们的Map Reduce论文时。...这一次不仅是论文,而是实际的软件,是他们在多年的发展之后所使用的内部工具。 因此,我开始学习机器学习基础知识,发现初学者需要更通俗易懂的资源。这是我尝试提供的。...如果您现在开始学习《MNIST 机器学习初学者》,并遇到了这张图: 我写这篇文章是为了让没有机器学习经验的人们为 TensorFlow 入门教程中的这张图做好准备。这就是为什么我模拟了它的视觉风格。...我希望您会觉得准备充分,并且了解这个系统以及它的工作原理。如果您想开始尝试编写代码,请随时从入门教程开始,它教一个神经网络如何识别手写数字。
我做了一个快速的A/B测试,就这样,我收到的应聘公司的回复率从2-3%增加到了10%。 在发送的大约500封应聘电子邮件中,我收到了大约50份回复,其中一小部分给了我电话面试的机会。...我的专业背景是API设计和服务导向式架构。因此,我借此机会展示了我将如何设计我自己的Instagram版本。...我一开始讲的是我想在我自己的Instagram版本中加入的一些功能:赞、上传照片和简单的时间线。 功能范围使我能够构建一个非常可靠的API,因为我非常了解这些场景。...例如,为什么要使用Cassandra而非MySQL来存储某些信息,为什么要使用OAuth而不是通过简单的认证,是使用Cassandra还是Memcached来缓存数据,是使用流媒体还是批处理处理等等。...你所需要的只是一次成功,这种安慰给了我很大的信心,让我能够不断尝试,当我拿到第一个Offer之后,后来的其它Offer来得就会容易很多。 我花了大约两个月的时间来为我的面试做准备和并做各种模拟练习。
清晰性要从读者的角度来看,而不是从代码的作者的角度来看,代码的易读性比易写性更重要。代码的清晰性有两个不同的方面: 该代码实际上在做什么? 为什么代码会这么做?...例如,由于性能原因,一段代码可能错综复杂,难以理解,或者一连串复杂的数学运算可能以一种意想不到的方式使用类型转换。...有注释,解释为什么,而不是代码正在做什么,以避免未来的歧义 有独立的文档 包含有效的错误与失败用例测试 往往不是看起来“聪明”的代码 在代码的简单性和 API 使用的简单性之间可能会需要权衡。...,以确保预期行为可控、重要逻辑正确,并且测试在失败的情况下提供清晰、可操作的诊断 当使用像接口和类型这样的抽象时,根据定义,它们会从使用的上下文中移除信息,因此必须确保它们提供足够的好处。...当使用具体类型时,编辑器和 IDE 可以直接连接到方法定义并显示相应的文档,但在其他情况下只能参考接口定义。
例如,当我们在浏览器中访问一个网页,服务器成功地找到并返回了页面的 HTML、CSS、JavaScript 等文件时,就会返回 200 OK 状态码。...常见的 400 Bad Request 表示客户端发送的请求语法错误,比如请求参数格式不正确或缺少必要的参数等。...502 Bad Gateway 通常表示服务器作为网关或代理,在尝试从上游服务器获取响应时遇到了无效的响应。...比如,当反向代理服务器无法正确连接到后端的应用服务器,或者后端应用服务器返回了错误的响应格式时,就可能会返回 502 Bad Gateway 状态码。...200 OK 状态码会在响应体中包含请求所对应的资源内容,例如当我们请求一个网页时,服务器返回 200 OK 并在响应体中提供 HTML 页面的代码。
我们看到了上面的社交媒体数据——我们正在处理的数据令人难以置信。你能想象存储所有这些数据需要什么吗?这是一个复杂的过程!...离散流 离散流或数据流代表一个连续的数据流。这里,数据流要么直接从任何源接收,要么在我们对原始数据做了一些处理之后接收。 构建流应用程序的第一步是定义我们从数据源收集数据的批处理时间。...当我们要计算同一数据上的多个操作时,这很有帮助。 检查点(Checkpointing) 当我们正确使用缓存时,它非常有用,但它需要大量内存。...它将运行中的应用程序的状态不时地保存在任何可靠的存储器(如HDFS)上。但是,它比缓存速度慢,灵活性低。 ❞ 当我们有流数据时,我们可以使用检查点。转换结果取决于以前的转换结果,需要保留才能使用它。...我鼓励你使用另一个数据集或收集实时数据并实现我们刚刚介绍的内容(你也可以尝试其他模型)。
我们可以从开局的几个问题入手来尝试评判下相应的接口设计是否很好的遵循了RESTfull风格设计。 Part2为什么接口只设计了GET和POST两种请求方法类型?...那么这里问题就来了,既然HTTP的请求方法类型有助于我们理解一个接口的作用,为什么在有些接口中唯独只会使用GET和POST呢?...这里面我觉得原因有很多,有些可能我也想不到也猜不到,但是我从个人开发经验上尝试猜测一下。 原因我觉得可能是一是懒,二是觉得没必要,三是根本不会设计。...但是这是建立在业务场景规定,查询结果为空的时候属于异常的前提上。 1返回HTTP状态码 200 当我们查询一个资源但是结果为空,到底要不要把本次请求视为一个404的异常是取决于业务场景。...,那么我返回的结果自然是空的,并不能视为一个异常,这时候返回一个200的HTTP状态码,然后在响应结果里面明确结果是空的才是正确的做法。
店里精酿啤酒五花八门,少说也有几十种,还都是他们没有听过的牌子。一番询问后两人买了1提。 ? 到家开始做晚饭时,朋友打开了Instagram,随后惊声尖叫。...在Reddit上的话题“Facebook与Instagram是否在监听我讲话”话题中,网友happypants40表示,前脚在电视上看到了一个地方与家人谈论,后脚就在自己的信息流中看到了一个旅行广告,而此前从未搜索旅行相关信息...各家公司面对窃听疑云,开始上演大型“否认三连”现场: 我不是、我没有、别瞎说啊~ ? 它们能吗? 很显然,这些回应无法打消人们心中的焦虑。讨论中,大多数人仍旧觉得它们有能力做到“窃听”。...整个过程,就是算iPhone X,分分钟也得变成砖。 第三,用户语音数据,对广告商来说没多大价值。人们还是太自恋了。 上述的观点,与知乎上的一些答案形成了呼应。 ?...这些回应,虽然解释了“为什么它们没有能力监听”。但仍旧有一个问题需要回答: 如果不是通过语音窃听,它们是怎么做到的? “窃听”无处不在 通过麦克风窃听谈话来获取用户信息,只是万千选择中的一种。
前言 在一次项目开发中,使用到了Netty网络应用框架,以及MQTT进行消息数据的收发,这其中需要后台来将获取到的消息主动推送给前端,于是就使用到了MQTT,特此记录一下。...这与我们的推送技术或者是多人在线聊天的功能不谋而合。 ? 重磅!Spring Boot 2.5.0火热发布,还学得动吗? 为什么不使用HTTP 协议呢?...干货篇:深入剖析 MySQL 索引和 SQL 调优实战 下面我们就直接开始使用Springboot开始整合。以下案例都在我自己的电脑上测试成功,你可以根据自己的功能进行修改即可。...我的项目结构如下: ? 什么是数据湖?为什么要数据湖?如何建湖?如何ETL?...服务器端, 注解的值将被用于监听用户连接的终端访问URL地址,客户端可以通过这个URL来连接到WebSocket服务器端 新建一个ConcurrentHashMap webSocketMap 用于接收当前