首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

5.4 万 Star,一夜清零!

为什么要将 repo 设为私有? 将 repo 设为私有永久删除所有关注者和 Star,这是 GitHub 的一个特性。知道这一点,而且显然无意 httpie/httpie 隐藏。...在这种情况下,由于我只是想在我们组织的个人资料上重复相同的操作,的大脑切换到了「自动驾驶」模式。...这就是为什么一开始要隐藏 httpie/httpie,而不是 httpie/.github,并且没有意识到我的错误。 但是,还有一个确认流程?...片刻之后,意识到发生了什么事。所以我回到 repo 的设置来翻转开关。但 GitHub 不允许这样做——整整半个小时。 为什么这么久呢?...我们也希望他们改进 UI 和数据库设计,以防止这种情况未来发生在其他团队身上。

98230

Bootstrap File Input,最好用的文件上传组件

(json[YUNM.keys.statusCode] == YUNM.statusCode.ok) { var msg = json[YUNM.keys.message]; // 弹出消息提示...function() { window.location = json.forwardUrl; }); } } } 其主要的功能就是通过ajaxDone方法处理服务端传递过来的错误消息...对于ihchenchen善意的提醒,非常的感谢,虽然他提供的解释并没有解决的疑问,但是很喜欢这样有互动的技术交流,之前写很多博客,基本上很少发生这样善意并且行之有效的回答。...六、解惑allowedFileTypes 、allowedFileExtensions 之前困惑为什么bootstrap fileinput为什么设置了这两个属性后,没有效果,其实是自己的误解,如今经过一番痛彻的领悟后恍然大悟...错误预期的发生了,那么请特别注意: image: function (vType, vName) { return (vType !== undefined) ?

3.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

精读文章:高级软件工程师成长秘诀

这暴露了掩盖困惑这种可怕的思维方式。从那以后,一直谨慎。 为了防止这点再次发生开始训练的“注意肌肉”。这叫做注意困惑。...每次你听到一些听起来奇怪的东西,你都急于解释它为什么一定是真的,你就是在掩藏困惑。关于这点我还写了更多东西。 一旦你开始注意困惑,你就会问一些让你困惑的问题。...还有一些产品约束,例如我们不希望用户在任何时候看到 3 个以上弹出窗口。 另一方面,需求是弹性的。需求是我们想要让发生的事情,但是通常我们不知道自己想要什么。问问自己“到底想要做什么呢?”...有时候,觉得需要知道所有问题的答案 当我明白的事情越多,更多的人向我问问题。这感觉棒极了!然而,肯定有一些问题不知道答案。在这种情况下,靠着感觉并且自作聪明是一个陷阱。...这些线程没有被终止,而且这些遗落的线程扰乱接下来的测试。 通常,这种情况发生比较匆忙的时候,当我没有保护的空闲,结果就是没有将学习放在做事情之上。

38620

搞定UI中报错信息设计,轻松提升用户体验

但实际的情况是,在用户体验设计中,总是或多或少地出现各种不可避免的错误。 第一部分:常出现的报错有哪些? 当界面或应用无法执行用户想要的操作时,就会造成错误的状态或条件。...这通常是由于用户不了解应用程序内部的流程而导致的) 当遇到以上情况,用户就会感到困惑甚至沮丧。...在大多数情况下,其实只需要在交互区域中创建一个颜色对比标记就足够了,使用消息框则显得臃肿繁琐,用户还要再次点击才能回到页面。想象一下,如果你正在填写注册表,然后弹出错误提示窗口,是不是很多余?...此时只需要提供一些验证,并在字段附近显示错误消息即可。 但是,如果由于错误而需要将用户重定向到另一个页面,这时候就需要使用弹出窗口了。 当用户遗漏添加邮箱提交表单时的报错设计: 5....此外,也不要使用术语,例如“发生错误4.7”或“语法错误”,这些设计人员和开发人员使用的语言,对于用户而言并不是很好理解。 6. 不要责怪用户 很多产品人员忍不住吐槽:用户为什么这也不懂那也不懂。

1.7K20

芭比Q了!5.4万GitHub Star一朝清零!

这种情况下,由于我只是想在我们组织的个人资料上重复相同的操作,的大脑切换到了「自动驾驶」模式。...这就是为什么一开始要隐藏 httpie/httpie,而不是 httpie/.github,并且没有意识到我的错误。 但是,还有一个确认流程?...一番操作之后 当我回到组织页面时,你可以想象困惑不仅仍然可以看到空的 README,同时我们最受欢迎的 repo 找不到了。片刻之后,意识到发生了什么事。...所能做的就是开始发消息给 GitHub 寻求支持,刷新页面并等待 Star 数量达到零,然后才能再次将其公开。 为什么 GitHub 不给我们恢复呢?...我们也希望他们改进 UI 和数据库设计,以防止这种情况未来发生在其他团队身上。

41560

十年积累,5.4万GitHub Star一朝清零:开源史上最大意外损失

这种情况下,由于我只是想在我们组织的个人资料上重复相同的操作,的大脑切换到了「自动驾驶」模式。...这就是为什么一开始要隐藏 httpie/httpie,而不是 httpie/.github,并且没有意识到我的错误。 但是,还有一个确认流程?...一番操作之后 当我回到组织页面时,你可以想象困惑不仅仍然可以看到空的 README,同时我们最受欢迎的 repo 找不到了。片刻之后,意识到发生了什么事。...所能做的就是开始发消息给 GitHub 寻求支持,刷新页面并等待 Star 数量达到零,然后才能再次将其公开。 为什么 GitHub 不给我们恢复呢?...我们也希望他们改进 UI 和数据库设计,以防止这种情况未来发生在其他团队身上。

74640

13 年的 Bug 调试经验总结

在调试这类问题时,我们总是假定在空闲列表中的时候连接被设置为down(但当时为什么不把它放到列表外面呢?)。这是我们思考的不足,没有考虑到有时候事情过早发生。 3.悄无声息的故障。...发生这种情况时,很难改变新设计影响到的所有情况。找到关于改变的所有显式依赖关系不难,难的是要找到所有隐性依赖于旧的设计的情况。例如,可能会有获取给定某一天所有客户事件的代码。...确保补充足够多的(但不要太多)日志记录,这样你就可以说明为什么程序要这么做。如果一切正常,那也没关系,但要是有问题发生,你庆幸自己添加了这些日志。...但我们容易忽视相反的情况——忘记检查不应该发生的动作是不是的确没有发生。 13.拥有工具。创建了自己的小工具,以使得测试更加简单。...有时,当用户报告问题的时候,的本能反应是,“这是不可能的。一定是他们做错了什么事”。但我学会了不再用这种方式去回应。更多的时间,事实往往证明,他们所报告的的确是实际发生情况

72650

为什么每个数据科学家都要读一读Judea Pearl的《The Book of Why》

构建了用于娱乐和工作的预测模型,也了解很多算法,从梯度提升(gradient boosting)这种传统模型到LSTM 这种很深的模型。尽管习得了很多算法,但是困惑依然存在。...算法自己也无法解决的困惑 如果你不是那种只关心 0.01% 的错误率降低,而是努力使自己的模型有意义的数据科学家,你可能一次又一次地这样问自己: 应该把这个变量添加到模型里面吗?...为什么所认为的一个很高的相关性结果却是零相关呢? 当我将数据分解成几个子部分的时候,为什么关系的方向反过来?...在这个复杂的世界中,保持这种机制有点不太可能。 从哲学角度来说,我们应该理解我们做出决定的方式。最有可能的是,你问「如果这么做了,会发生什么;如果那么做了,又将如何?」。...请注意,你仅仅是创建了两个并没有发生的幻想世界。有时候当你为了从错误中学习而做一些反思时,你可能问:「如果这么做了,那件事就不会发生。」再一次,你创建了反事实的世界。

1.4K10

编程时常见的8种错误

大家都知道,学习编程是一件枯燥的事情,尤其是在运行程序时始终得不到自己想要的结果,经过一番调试后依旧不得其解的时候,相信这种情况每一个程序员都遇到过,这也是一个伟大的程序员诞生的必经阶段。...令人可悲的是,相同错误依旧在不断的发生。...但幸运又随之而来,在这里,将新程序员遇到过的最常见的8个错误集合到一起,方便大家学习 1 使用单“=”检查是否相等 char x='Y'; while(x='Y') { //......例如,它可能是121,在这种情况下,while循环的条件永远不会为真。程序的输出可能是输出从-99到99的数字。 切记:变量一定要进行初始化!!!...但是实际运行时发现,即使value等于10,也一直执行这个循环语句。从while表达式分析可知。不可能同时存在value既等于10又等于20的情况

76610

编程时常见的8种错误

大家都知道,学习编程是一件枯燥的事情,尤其是在运行程序时始终得不到自己想要的结果,经过一番调试后依旧不得其解的时候,相信这种情况每一个程序员都遇到过,这也是一个伟大的程序员诞生的必经阶段。...令人可悲的是,相同错误依旧在不断的发生。...但幸运又随之而来,在这里,将新程序员遇到过的最常见的8个错误集合到一起,方便大家学习 1 使用单“=”检查是否相等 char x='Y'; while(x='Y') { //...  ...例如,它可能是121,在这种情况下,while循环的条件永远不会为真。程序的输出可能是输出从-99到99的数字。 切记:变量一定要进行初始化!!!...但是实际运行时发现,即使value等于10,也一直执行这个循环语句。从while表达式分析可知。不可能同时存在value既等于10又等于20的情况

1K40

13 年的 Bug 调试经验总结

在调试这类问题时,我们总是假定在空闲列表中的时候连接被设置为down(但当时为什么不把它放到列表外面呢?)。这是我们思考的不足,没有考虑到有时候事情过早发生。 3.悄无声息的故障。...发生这种情况时,很难改变新设计影响到的所有情况。找到关于改变的所有显式依赖关系不难,难的是要找到所有隐性依赖于旧的设计的情况。例如,可能会有获取给定某一天所有客户事件的代码。...确保补充足够多的(但不要太多)日志记录,这样你就可以说明为什么程序要这么做。如果一切正常,那也没关系,但要是有问题发生,你庆幸自己添加了这些日志。...但我们容易忽视相反的情况——忘记检查不应该发生的动作是不是的确没有发生。 13.拥有工具。创建了自己的小工具,以使得测试更加简单。...有时,当用户报告问题的时候,的本能反应是,“这是不可能的。一定是他们做错了什么事”。但我学会了不再用这种方式去回应。更多的时间,事实往往证明,他们所报告的的确是实际发生情况

70360

13 年的 Bug 调试经验总结

在调试这类问题时,我们总是假定在空闲列表中的时候连接被设置为down(但当时为什么不把它放到列表外面呢?)。这是我们思考的不足,没有考虑到有时候事情过早发生。 3.悄无声息的故障。...发生这种情况时,很难改变新设计影响到的所有情况。找到关于改变的所有显式依赖关系不难,难的是要找到所有隐性依赖于旧的设计的情况。例如,可能会有获取给定某一天所有客户事件的代码。...确保补充足够多的(但不要太多)日志记录,这样你就可以说明为什么程序要这么做。如果一切正常,那也没关系,但要是有问题发生,你庆幸自己添加了这些日志。...但我们容易忽视相反的情况——忘记检查不应该发生的动作是不是的确没有发生。 13.拥有工具。创建了自己的小工具,以使得测试更加简单。...有时,当用户报告问题的时候,的本能反应是,“这是不可能的。一定是他们做错了什么事”。但我学会了不再用这种方式去回应。更多的时间,事实往往证明,他们所报告的的确是实际发生情况

70460

Debug

其实看一个会写程序的人功力怎么样,觉得看ta的键盘F10,F11就能知道,如果磨得没有字了,或者油腻腻的(别问我为什么是油腻腻的这个形容词).因为程序写好运行的时候,就像一个个小工厂一样.有条不紊的全力运行...接着需要一点经验,这种活,自己哪里有雷是有点数的,那么就在这附近找吧 一步俩步,单步调试,分块调试 这步其实是选填的,就是在一个函数块内更改一些数据再看效果 当然是修bug了 为什么要用VC讲,...要避免这种类型的错误,需要对程序反复测试,完备算法,使程序能够适应各种情况的数据。 为了方便程序员排除程序中的逻辑错误,VC 提供了强大的调试功能。...在编辑框中输入一个表达式,当这个 表达式的值发生变化时,数据断点就到达。一般情况下,这个表达式应该由运算符和全局变量构成,例如:在编辑框中输入 x这个全局变量的名字,那么当程序中有x= !...如果在底下的下拉 列表框选择一个消息,则每次这种消息到达,程序就中断。

1.3K20

13 年的 Bug 调试经验总结

在调试这类问题时,我们总是假定在空闲列表中的时候连接被设置为down(但当时为什么不把它放到列表外面呢?)。这是我们思考的不足,没有考虑到有时候事情过早发生。 3.悄无声息的故障。...发生这种情况时,很难改变新设计影响到的所有情况。找到关于改变的所有显式依赖关系不难,难的是要找到所有隐性依赖于旧的设计的情况。例如,可能会有获取给定某一天所有客户事件的代码。...确保补充足够多的(但不要太多)日志记录,这样你就可以说明为什么程序要这么做。如果一切正常,那也没关系,但要是有问题发生,你庆幸自己添加了这些日志。...但我们容易忽视相反的情况——忘记检查不应该发生的动作是不是的确没有发生。 13.拥有工具。创建了自己的小工具,以使得测试更加简单。...有时,当用户报告问题的时候,的本能反应是,“这是不可能的。一定是他们做错了什么事”。但我学会了不再用这种方式去回应。更多的时间,事实往往证明,他们所报告的的确是实际发生情况

95590

13 年的 Bug 调试经验总结

在调试这类问题时,我们总是假定在空闲列表中的时候连接被设置为down(但当时为什么不把它放到列表外面呢?)。这是我们思考的不足,没有考虑到有时候事情过早发生。 3.悄无声息的故障。...发生这种情况时,很难改变新设计影响到的所有情况。找到关于改变的所有显式依赖关系不难,难的是要找到所有隐性依赖于旧的设计的情况。例如,可能会有获取给定某一天所有客户事件的代码。...确保补充足够多的(但不要太多)日志记录,这样你就可以说明为什么程序要这么做。如果一切正常,那也没关系,但要是有问题发生,你庆幸自己添加了这些日志。...但我们容易忽视相反的情况——忘记检查不应该发生的动作是不是的确没有发生。 13.拥有工具。创建了自己的小工具,以使得测试更加简单。...有时,当用户报告问题的时候,的本能反应是,“这是不可能的。一定是他们做错了什么事”。但我学会了不再用这种方式去回应。更多的时间,事实往往证明,他们所报告的的确是实际发生情况

50620

为什么日本的网站看起来如此不同

现在,没有资格告诉你日本文化如何影响了这种设计。然而,幸运能够从与日本本土人士的交谈中获得启发,以及在日本工作和生活的经验。...然而,当我询问一个日本本土人士为什么许多极受欢迎频道的缩略图都是这样设计时,他对这种设计被视为令人困惑的想法感到惊讶。...这与更加集体主义的社会心态紧密相连——例如,在将文件发送给商业伙伴之前进行两次(或三次)检查可能需要更长时间,但错误的风险显著降低,从而避免了任何参与者丢面子的情况发生。...回到网站设计,这种文化角度有助于解释为什么在线购物、新闻和政府网站在外部观察者看来常常是“最糟糕的罪犯”。...这可能给我们提供了另一个线索,解释为什么即使在日语能力较高的情况下,西方人对这类网站也感到困难。 后但并非最不重要的是,必须说的是,网站并不是在一个在线真空中存在。

35530

比较Go、Rust、Scala、Java、Kotlin、Python、Typescript 和 Elm中的编译器错误

Java 有一个简单明了的错误消息,尽管 cannot find symbol 消息不太清楚(为什么你丢失了符号?)...更花哨的输出(带颜色),但与 Python 中的错误消息相同,如果你不是绝对的初学者,容易找到问题。...Scala 错误消息的优点是它们显示了有问题的代码行、值(42,“Hello”)、值的类型以及它们应该是什么。解释相当冗长,在这种情况下没有帮助。...然后 Elm 然后移动到第二个错误,即第一个参数。有点令人困惑,但我猜想作为一名 Elm 开发人员,这种评估策略变得自然而然。...认为 Rust 最长,但略微令人困惑。Elm 很好,并提供了一些有用的提示,尽管错误排名奇怪。认为更喜欢 Scala 的错误消息,尽管更深入的解释没有帮助,但这里的类型太简单了。

11010

如何编写有用的错误消息

是:解释发生了什么,或者为什么有些事情不起作用。 否:如果我们不知道出了什么问题,请承认并告诉他们。向他们保证我们正在努力修复问题。 我们可以现在就修复吗?...你的错误消息都应该符合你的品牌声音调性。错误消息应该考虑到受众身份,以及他们为什么、何时使用你的产品。  打出正确的语气 当品牌声音固定下来以后,你的语气需要和不同的错误情况相适应。...但如果你正在处理一个大型表单,你可能无法涵盖所有类型的字段验证,因为这样很难构建和维护。 如果是这种情况,请系统地应对问题。...但是你可以遵循一些很好的原则,它们可以帮助你写出出色的错误消息: 使用通俗易懂的语言:写出你大声念出来的句子和单词 分解长句:两个短而清晰的句子比一个长句好 使用主动语态:应该说“输入你的姓名”,而不是...面对“缺芯”,特斯拉慌 舍弃325亿估值公司CTO职位:写代码才最快乐!管理只会影响搞研发 这款上线6年火爆应用即将消失,开发者和苹果审核人员再度交锋 ---- InfoQ 读者交流群上线啦!

86810

衣带渐宽终不悔!嵌入式大牛10年调Bug经验总结

在调试这类问题时,我们总是假定在空闲列表中的时候连接被设置为down(但当时为什么不把它放到列表外面呢?)。这是我们思考的不足,没有考虑到有时候事情过早发生。 3.悄无声息的故障。...发生这种情况时,很难改变新设计影响到的所有情况。找到关于改变的所有显式依赖关系不难,难的是要找到所有隐性依赖于旧的设计的情况。例如,可能会有获取给定某一天所有客户事件的代码。...确保补充足够多的(但不要太多)日志记录,这样你就可以说明为什么程序要这么做。如果一切正常,那也没关系,但要是有问题发生,你庆幸自己添加了这些日志。...但我们容易忽视相反的情况——忘记检查不应该发生的动作是不是的确没有发生。 6.拥有工具。创建了自己的小工具,以使得测试更加简单。...有时,当用户报告问题的时候,的本能反应是,“这是不可能的。一定是他们做错了什么事”。但我学会了不再用这种方式去回应。更多的时间,事实往往证明,他们所报告的的确是实际发生情况

44111

JavaScript 编程精解 中文第三版 八、Bug 和错误

在严格模式下,它会报告错误。 这非常有帮助。 但是,应该指出的是,当绑定已经作为全局绑定存在时,这是行不通的。 在这种情况下,循环仍然悄悄地覆盖绑定的值。...许多错误来自于值的类型的困惑,它们进入或来自一个函数。 如果你把这些信息写下来,你不太可能感到困惑。...这是一个地方,你必须抵制随机更改代码来查看它是否变得更好的冲动。 相反,要思考。 分析正在发生的事情,并提出为什么可能发生的理论。...或者它可能再次向它的调用者返回一个特殊值,表示它未能完成所要求的操作。 在很多情况下,当错误常见并且调用者应该明确地考虑它们时,返回特殊值是表示错误的好方法。 但它确实有其不利之处。...这使得这种错误不太可能被忽视,并且当它们发生时更容易找到它们的原因。 不建议尝试为每种可能的不良输入编写断言。 这将是很多工作,并会产生非常杂乱的代码。

1.2K100
领券