在 iOS 15 公开推出后, 我们开始从用户端收到反馈报告:在打开我们的应用程序(Cookpad) 时他们被莫名其妙的反复退出到登录页。...是什么发生了改变以及为什么它如此难以复现? 是什么发生了改变以及为什么它如此难以复现?...虽然我们无法改变加载会话的行为,但我们能够开始记录错误并更好地记录我们实现的当前行为。 这个结果给了我们一些很好的观察点,然后我们可以在接下来的几周内观察。...那么,究竟发生了什么变化呢?即使我能够重现这个问题,我也100%确定我的手机在我点击应用图标的时候是解锁的,所以我不明白为什么会出现这个Keychain错误。...我仍然不知道这种预测是如何形成的,但我只想把它归结为 "Siri智能",然后就到此为止了。
写一个失败的测试 现在已经有了一个失败测试,或者可能是一个带有错误的测试,是时候进行故障排除了。但是在这样做之前,让我们先回顾一下堆栈,因为这使故障排除更加容易。...这意味着,不管这个程序当时在做什么,很明显,有些地方出了问题,这些问题都在底部。 3.总是先检查堆栈的底部 您不仅可以在堆栈的底部看到发生了哪个错误,而且通常堆栈的最后一行也是您可以找到问题的地方。...最后我发现到处都是印刷的声明,我不知道它们在哪里,为什么,事情变得复杂起来。但主要使用pdb还有一个更重要的原因。比方说,你放入一个print语句,然后发现有些地方出错了——而且一定是早些时候出错了。...这应包括: 是什么引起了问题 到底发生了什么,包括任何错误消息或相关的日志消息 您所期望的结果 到目前为止,您已经完成了哪些工作来查找问题和在故障排除过程中发现的任何线索 有时候这些信息太多了,但是相信我...无论如何,如果你在把所有事情都写下来之后仍然没有想到任何事情,试着给某人发一封邮件。首先,尝试与你的项目有关的同事或其他人,然后再进行项目电子邮件列表。不要害怕寻求帮助。
在 iOS 15 公开推出后, 我们开始从用户端收到反馈报告:在打开我们的应用程序(Cookpad) 时他们被莫名其妙的反复退出到登录页。...是什么发生了改变以及为什么它如此难以复现? 是什么发生了改变以及为什么它如此难以复现? 我粗略地看了一下发布说明,在谷歌上快速搜索了一下,我找不到任何东西,所以我不得不继续挖掘以更好地了解这个问题。...虽然我们无法改变加载会话的行为,但我们能够开始记录错误并更好地记录我们实现的当前行为。 这个结果给了我们一些很好的观察点,然后我们可以在接下来的几周内观察。...那么,究竟发生了什么变化呢?即使我能够重现这个问题,我也100%确定我的手机在我点击应用图标的时候是解锁的,所以我不明白为什么会出现这个Keychain错误。...我仍然不知道这种预测是如何形成的,但我只想把它归结为 "Siri智能",然后就到此为止了。
这篇文章的内容很零碎,所以我没指望 ML 领域以外有多少人会看,但我确实认为它在理解 GPT-3 之类的模型内部到底发生了什么事情这个主题上取得了一些非常好的(当然也是比较初步的!)进展。...虽然它真的很棒,但我当然也经历过(我认为谁都有这种经历)“天呐为什么这件事如此复杂”的感受,以及“为什么调试任何东西都这么难”的情况 虽然其中一些感受在学习任何新系统时都是很常见的,但 Kubernetes...虽然这可能是一个有意义的观点,但我认为将 Kubernetes 视为通用集群操作系统内核会更合理一些。那么我到底是什么意思呢?这两种定义有什么区别?...另一种观点:在与我的搭档 Kate 讨论这篇文章时,我想出了另一个关于这个主题的视角: 我的感觉是,许多用户认为 Kubernetes 本质上是(或者可能希望它是)“一个 Heroku”,即作为部署应用程序的平台...并且,与前面关于延迟错误的观点一样的是,故障模式都是很微妙的,并且出现在很远的位置;并且很难区分“尚未收到更改”和“永远不会收到更改”之间的区别。
,但胜似跟客户一对一服务”;病毒传播,听起来可怕干起来厉害的一招,可以归纳为“虽然我只认识7个人,但我认识的每一个人周围都有700个人”;内容营销,Inbound marketing相当注重的部分,可以归纳为...“增长黑客”所做的分析,基本上集中在“内两圆”中,也就是“描述型”分析和“诊断型”分析。 [描述型]的分析回答what的问题:我的产品发生了什么?...是否发送邮箱验证码的服务器有问题,导致很多用户无法即使收到邮件?根据这个流失的核心节点,我产生了两个疑问,并希望据此进行测试,而这个流失原因,也被我“转化”成增长的机会点了。 这就是“描述型”分析。...[诊断型]的分析回答why的问题:为什么我的产品发生了这样的事情? * 需要有从全局钻取到细节的能力* 需要有隔离所有混淆信息的能力 拿官网注册日报来说明。其中一个重要的KPI是新增用户数。...我发现,今日与昨日注册用户数量有明显提升,那么,发生了什么事情呢? 通过对该KPI的下钻,发现来自某战略合作伙伴app store的注册跃居第一。跟该伙伴合作有一段时间了,为何昨日突然发力?
G:我的小伙伴Moritz Hardt发推告诉大家,一段成功的科研事业,往往是从收到一大摞厉害的研究生院的拒信开始。 然后,我就列出了自己被拒的经历,回应了他。...如果长期受到辩论环境的浸染,就会习惯这种节奏,输掉一轮之后很快进入下一轮。输赢都属于动态平衡。 罗列失败=秀优越? G:我发关于失败的推文,观众似乎都没有这样的感觉。...比如,2009年我遇到最大的困境,不是收到MIT和CMU的拒信;而是不知道自己能不能在拿到录信的学校,比如斯坦福和伯克利,做起自己想做的研究。...一部分原因可能是,我们太爱用Arxiv.org了,而其他领域的研究人员可能更偏爱同行评审过的论文。 不过说实话,我也不知道这个现象会对不同人群产生什么样的影响。 怎么看待ML的负面/阴性结果?...采访结束了,重要的信息可能有很多,但我在意的是,为什么我碰不上系统bug给我个A的好事?
这个问题实际上在考察大家对于 TCP 三次握手的底层原理,很多同学对于 TCP 三次握手的理解只停留在SYN和ACK报文的交互,而关于三次握手过程中,内核做了哪些事情?...socket 编程和三次握手有什么关系?都不太明白,那这样在遇到这种问题就比较难回答了。 我们先看看客户端连接服务端时,发生了什么?...客户端协议栈收到 ACK 之后,使得应用程序从 connect 调用返回,表示客户端到服务端的单向连接建立成功,客户端的状态为 ESTABLISHED,同时客户端协议栈也会对服务端的 SYN 包进行应答...nc 127.0.0.1 8888 如果这个命令立即返回,就当无事发生的话,说明出问题了,可能是无法通信,可能是客户端没有打开; 如果正在等待,就说明连接成功,可以在服务器这个窗口中输入任意内容,在客户端会显示出来...因为发送方调用 wirte 发送数据的时候,当把数据从应用层拷贝到 socket 发送缓冲区之后,函数就会返回成功了,至于什么时候发数据,发多少数据,这个后续由内核自己做决定。
远程命令执行漏洞是Web应用中常见的漏洞之一,在2017年发布的10项最严重的Web应用程序安全风险列表中”注入“毫不意外的被放在了第一位。...在开始做WAPT之前,我想告诉你一些你可能不知道的关于bash和通配符的东西。 关于通配符 Bash标准通配符(也称为通配符模式)被各种命令行程序用于处理多个文件。...正如你在以上截图中看到的,显示有3个错误“/bin/cat *: Is a directory”。发生这种情况是因为/???/?...毫无疑问是创建一个脆弱的PHP脚本,并尝试所有可能的技术点!在上方截图中可以看到,在左上方的窗口中我写了一个极为简易的Web应用程序(一个执行命令的PHP脚本): ?...很难说什么是躲避WAF的最佳配置,或什么等级是最好的。但我可以说,恕我直言我们不应该轻易信任Web应用上的规则集,而是应该根据每个应用的功能配置合适的WAF规则。
前两天写了篇《八月初八是什么节日》获得了很好的数据(阅读/赞赏),其实,毫不谦虚的说,这篇文章的效果会很好,在群发之前我是有预期的(你为何这么屌),下面我就讲一下这篇文章是如何设计的。...所以大家不知道答案完全是在情理之中的,这也是我的鸡贼之处。那么我为何敢直接用这个标题呢?用八月初七,九月二十日是什么节日有没有差别呢?...当然有,因为中国人对数字都很敏感,比如“六“,”八“这种,象征着”顺“和”发“,所以八月初八这种日子简直是极品!然而,这只是普通得不能再普通的一天而已(除了诞生了我)。...再说说文章整体架构的设计,我的最终目标是要突出 9.20 会员日五折,且当天是八月初八。那么最好的线索就是顺着八月初八发散开来,看看有没有什么有趣的线索。...我想,到这里基本的反差效果已经达到了,我的标题是《八月初八是什么节日》,而开篇就说:”这事儿,得从上古的黄帝说起…“,那么大家一定会好奇:”这天关黄帝毛事儿啊?到底发生了什么?有什么大八卦?
但我为什么要坚持提升协议呢?有两个主要的原因,一是需要给客户端提供更加具有语义的回复,二是提供一个旧版本不能实现的新功能:客户端缓存。...如果你密切关注我说的话,你会开始考虑同一连接既会接收到正常的客户端回复,又会接收失效消息。这可以通过RESP3实现,因为失效作为“推送”消息类型发送。...我们可能因为不能接收到失效消息而陷入麻烦。通常,应用会检测连接,尝试重连,并清除缓存。为了确保失效连接处于连接状态,不时地向服务器发送ping请求可能是一个更好的主意。...我刚才描述的已经合并到Redis的unstable分支。可能不是最终的处理方法,但是在第一个Redis 6发布版本之前还有几个月的时间,我们还有时间修改所有的事情:可以告诉我你的反馈。...我希望这足以刺激你的胃口:如果我们在Redis中运行的很好,然后记录下来,让客户端作者知道该如何支持,数据可能比以往更接近应用程序,甚至在小型团队运行的应用程序中,到目前为止还没有尝试客户端缓存。
刚工作那会,有一次,上游调用我服务的老哥说,你的服务报"502错误了,快去看看是为什么吧"。 当时那个服务里正好有个调用日志,平时会记录各种200,4xx状态码的信息。...不知道有多少老哥是跟当时的我是一样的,这篇文章,就来聊聊502错误是什么? 我们从状态码是什么开始聊起。 HTTP状态码 我们平时在浏览器里逛的某宝和某度,其实都是一个个前端网页。...但如果服务端发现客户端发的东西异常,就响应个4xx状态码,意思是这是个客户端的错误,4xx里头的xx可以根据错误的类型,再细分成各种码,比如401是客户端没权限,404是客户端请求了一个根本不存在的网页...所以才会出现文章开头的一幕,上游收到了我服务的502报错,但我在自己的服务日志里却搜索不到这一信息。...产生502的常见原因 在rfc7231中有关于502错误码的官方解释是 502 Bad Gateway The 502 (Bad Gateway) status code indicates that
「他们没有错,」他说,「从某种意义上说,这可能是未来智能系统的一个组成部分,但我认为它缺少必要的部分。」 对于在完美使用卷积神经网络的学者来说,这种批评真是够惊人的。...顺便说一下,对于这篇论文,我明确表示了这不是一篇通常意义上的科学论文,它更像是一份关于走向何处的立场文件。我并不要求我在论文中写的大部分内容有任何优先权。...LeCun:目前的深度学习模型可能是未来智能系统的一个组成部分,但我认为它缺少必要的部分。我认为它们是必要的,但还不够。" 马库斯:尽管我勾勒了所有的问题,但我不认为我们需要放弃深度学习。...他在实验心理学方面做了非常好的工作,但他从来没有写过一篇关于AI的同行评议的论文」。 这完全是错误的。实际上,我在AI领域发表了大量的文章,有些是在同行评议的期刊上,有些不是。...Vmind.AI的首席执行官Miguel Solano发推表示对我表示支持。
2、关于 IP 协议 IP 协议也就是我们所说的网络层协议,它的主要目的就是将一个 IP 地址的数据发送到另外一个 IP 地址所代表的设备,这两个 IP 地址有可能是隶属于同一个网段,也有可能隶属于不同的网段...3、关于 UDP 协议是什么 UDP 即用户数据报协议,UDP 协议定义了端口,同一个主机上的每个应用程序都需要指定唯一的端口号,并且规定网络中传输的数据包必须加上端口信息,当数据包到达主机以后,就可以根据端口号找到对应的应用程序了...4、关于 TCP 协议是什么 TCP 即传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议,简单来说 TCP 就是有确认机制的 UDP 协议。...拥塞控制:前面的流量控制是避免「发送方」的数据填满「接收方」的缓存,但是并不知道网络的中发生了什么。一般来说,计算机网络都处在一个共享的环境。因此也有可能会因为其他主机之间的通信使得网络拥堵。...其实只要「发送方」没有在规定时间内接收到 ACK 应答报文,也就是发生了超时重传,就会认为网络出现了用拥塞。
有可能是三次,虽然ack和fin是不同时机触发的,但是在延时应答和捎带应答的情况下是有可能合并在一起的。 四次挥手一定会执行吗?...这里的提高效率可以用一个例子来理解, 一发一收 我去小吃街去买饭,我想买香肠、包子、饺子,一发一收就是我去包子摊给老板说买包子,等他做好了我再去香肠摊给老板说卖香肠,等他做好了再去饺子摊,等他做好了就买完了...在滑动窗口的机制下,如果发生了丢包,怎么重传呢? 1.丢的是ack。...如果丢的是ack,那么无所谓,我们通过序号和确认序号来对应每条请求和确认应答的,确认序号的作用就是说明前面的数据都接收到了,如果后面数据的ack都接收到了,那么前面数据的ack接不接收都无所谓了。...9.面向字节流 TCp数据包是面向字节流的,所以接收方拿到数据后,放到缓冲区,缓冲区全是字节 应用程序从缓冲区读取数据的时候,就不知道从哪到哪是一个完整的数据包了。
什么表白啊、寻物啊、寻人啊、人生感悟啊,各种各样的内容,都可以通过树洞发。 人人网的树洞 这么一回忆,功能真的挺多挺好玩的。 @凌木木 不知道为何,一提到人人网,我第一个想到的竟然是高校表白墙。...你发过最好玩/最神奇的状态是什么? @桃子 不知道是因为年纪渐长还是什么,在朋友圈发状态总是会想着“人设”,什么该发什么不该发,自己都会控制一下。...但是当初在人人上发状态真的完全不会考虑这么多,想发什么就发什么。...我还记得那时候人人上发的都是什么测试啊,星座啊什么的,现在看到以前自己发的状态,感觉好幼稚啊。 就像有句话说的一样:成长就是不断地觉得自己曾经是个傻逼的过程。 你在人人网发生过什么故事?...如果真要找一个不玩人人的理由,那可能是我长大了吧,哈哈哈,正逢我毕业,我即将到一个新的城市,开启新的旅程。 @翠花 为什么不用人人了?
提供技术咨询:如果你发现客户做了错误的技术决策时,一定要对他们指出这一点,而不要应该让他们在错误的路上越走越远,直到举步维艰。一起讨论决策,但要记住,最后的决定权一定以及始终在客户手里。...问题就是,在对我需要保密什么都不知道的时候,我怎么能签署保密协议?如果我已经工作过的项目和这份保密协议发生了冲突怎么办?...做好突然没工作的准备 没有提前通知,项目就停了下来,这是自由职业的属性之一。我的对策是一次至少接两个兼职项目,而不是单单一个全职项目。...最后,我不知道是运气,巧合,还是其他什么东西。当项目结束时,无论是突然发生的还是因为其自然而然地到了时间期限,我经常收到主动和意想不到的offer。...例如上一次,在项目突然被冻结的第二天,我在Stack Overflow上收到了一个方案,过了几天之后在LinkedIn上又收到了另一个。这两个都是新的联系人,而不是朋友的朋友。
显然,如果你关于大脑工作原理的错误理论带来了好的技术,你可以利用这一点来获得资助。但我真的想知道大脑是如何工作的。我认为目前人工神经网络与大脑实际工作原理之间存在一定的分歧。...问:你知道这是你的制约因素吗? 答:我并不知道,但我相信那可能是我们的制约因素。但人们对这样的说法嗤之以鼻,好像这是一个借口:「如果我有更大的计算机和更多的数据,一切都会好起来。...2006年时,这个理念的种子已经埋下,到了2009年,我们已经研发出了比最好的语音识别器更好的东西,用与其他所有语音识别器不同的技术识别您说的哪个音素。 问:那么2012年发生了什么大事呢?...我不知道答案是什么。在2015年左右,我曾经声称,在未来五年内,计算机将在图像识别方面超越放射科医生,因此教他们识别图像中的东西已经没有意义了。事实证明,我的预测错误了,实际上需要10年,而不是5年。...但是,关于如何完成这件事,我不知道,但我怀疑,作为第一步,至少这些大型语言模型必须了解到,存在不同的观点,以及它所作出的补充是相对于一个观点的。
代码将所有内容抽象到开发者难以想象发生了什么的程度,只是为了向原本非常简单的函数中添加“单元测试”。DHH 称这种为测试引起的设计损坏。 测试只是确保用户的程序正常运行的工具之一。...在此,推荐开发者可以查阅一本使用广泛的测试书籍,Robert C.Martin 编写的《Clean Code》,其中部分内容是为了响应更复杂的代码而写的,在这些程序中,你阅读了 1000 行代码,但仍然不知道发生了什么...在 Ruby 社区中有一种强大的 TDD 文化,尽管单元很容易理解,但我发现理解应用程序逻辑非常困难。...我不完全确定如何看待 BDD。我持怀疑态度,但我从来没有在一个大型项目中正确使用它,所以我犹豫不决是否放弃他。...所以这些都是错误的抽象:它们包装和混淆,而不是分离关注点并缩小范围。 关于开源项目 如果你有兴趣在开源项目中请求其他人来贡献,那么测试可以理解是一个非常重要的问题。
A) 产品经理:帮我查一下数据,但我忘记是哪个表了。 B) 研发经理:我也忘记了。 需求:在不知道表名和字段名的情况下,查找出哪些字段里包含“关键字”的数据。...DBA解决思路:用python全量扫描跑批,涉及到varchar的字段都扫一遍。...column_name): query = f"SELECT * FROM `{table_name}` WHERE `{column_name}` LIKE '%关键字%'" with pymysql.connect...pass except (pymysql.err.OperationalError, TypeError, FileNotFoundError) as e: print(f"错误信息...运行上面的代码,并发10个线程 - 地毯式搜索,最后会打印出符合条件的表名和字段名,交付给产品经理。
领取专属 10元无门槛券
手把手带您无忧上云