翻译:疯狂的技术宅 来源:toptal 类型和可测试代码是避免错误的两种最有效方法,尤其是代码随会时间而变化。...我们将会使用: Node.js TypeScript Discord.js,Discord API的包装器 InversifyJS,一个依赖注入框架 测试库:Mocha,Chai和ts-mockito...然后输入并通过运行以下命令创建一个新的 Node.js 项目: 1npm init 注意:你也可以用 yarn,但为了简洁起见,我们用了 npm。...另外,创建一个 .env.example 文件,提醒你 TOKEN 需要定义: 1TOKEN= 编译TypeScript 要编译 TypeScript,可以使用 npm run watch 命令。...为了简单起见,我们的机器人只做一件事:它将扫描传入的消息,如果其中包含单词“ping”,我们将用一个 Discord bot 命令让机器人对那个用户响应“pong! “。
很多人在他们的工作领域浪费时间和精力。你是否有一个专门的工作场所,永远不会改变吗?我放弃了我的笔记本电脑,现在只需要使用台式机,这样我就可以在一致的地方做我的工作。...当你戴着它们时,很明显你没有投入注意力,所以人们会离开你,比起你插上耳机而他们看不见,这样他们会觉得更温和一些。这也会阻止分心,并帮助你集中精力。...用这个练习来思考这样的主题,并试图简化和改善你的环境。有一件事 - 不要花很多钱买奇奇怪怪的工具。只需确定问题,然后尝试找到解决方法。...在前面的命令中我们使用\;,因为 bash 和许多其他 shell 使用;(分号)作为他们的语言的一部分,所以我们必须转义它。 这个练习将真正测试你使用argparse或sys.argv的能力。...我建议你运行man找到参数列表,然后尝试使用find来确定你将要实现什么参数。你只有45分钟,所以你可能不会实现太多,但是-name和-type,以及-print和-exec是必不可少的。
通过 immutable-js 构造的数据一旦创建,就不会更改;原理是:每当对其进行修改时,会返回一个新的 immutable 对象,以此来保证先前数据不可变(底层数据结构 Trie 前缀树 + 结构共享...Premonish.js Premonish 可以检测用户鼠标的移动位置并预测他们要移向哪个元素,帅的嘛,不谈了~~ 前往体验便知它是怎么预测的:地址 import Premonish from '...Stretchy 用于表单元素自动调整大小;还能监听你的 input 等文本框大小,如果尺寸错误,则会报错;体积 1.5KB; 13....Discord.js discord.js 是一个强大的 Node.js 模块,可让您轻松与 Discord API 交互; Discord 是一款专为社群设计的免费网路即时通话软体与数位发行平台,拥有...,如数字、大数、复数、分数、单位和矩阵; 功能强大且易于使用~ 19. howler.js howler.js 让音频处理变得容易、好用; 20.
最终证明这是一个正确的决定,因为 CKAD 还帮助他们提高了 Kubernetes 命令的速度和肌肉记忆,这对两门考试都至关重要。...尝试在运行 Kubernetes 命令时使用自动完成功能。这将在考试中更有帮助和有效。...CKA 和 CKAD 认证的常见问题 在准备过程中我们想到的一些问题(除了 Linux 基金会官方 FAQ 页面上的问题)。 我可以在考试中使用双显示器吗?...是的,我们可以使用双显示器 我可以在考试期间链接和使用书签吗? 是的,我们可以使用它们,只要它们指的是考试允许的官方 Kubernetes 文档 考试后什么时候出结果?...自动化脚本很可能会评估它们。 如果我在第一次尝试中失败了,我应该为什么做更多的准备? 专注于解决您在第一次尝试中发现困难的所有问题和场景以及您在考试中第一次发现的问题。
以正确的方法尝试解决问题,会帮你积累认知。所谓的“编程经验”,很多就是从各种失败尝试中提炼出来的。但是如果你面对错误,尝试使用的方法低效,甚至根本不得其法,那就得不偿失了。...于是他们就开始了第一步,照葫芦画葫芦,先把样例中的代码重复实践一遍,确定本地可以运行。 做好了第一步,出了正确的结果,他们也就来了信心。...你确定这时候Python可以找到dot包了吗? 我们尝试一下。到命令提示符下面,执行dot试试看。 ? 真相大白了。你在命令提示符下,自己都找不到dot命令,你能指望Python有多智能呢? 怎么办?...顺便说一句,根据部分读者反映,他们在Windows上安装了Graphviz后,只需要重启一遍,系统就会自动识别dot命令的完全路径,所以根本就不必修改代码内容。但是其他读者反映这样做了无效。...原来你需要提供这样一张黑白图像,词云会显示在其中的黑色区域内。 但是这样的图像需要我自己来绘制吗? 这就考验你看代码的时候是不是细致了。有没有注意到这一句?
也可以通过单个命令手动完成,也可以自动完成。 滚动更新:您可以将旧容器换成新容器,而不会中断服务。也可以使用单个命令来完成。...这使得确定学习各种概念的顺序有些困难。因此,我认为该文档最好作为参考,而不是循序渐进的指南。 Kubernetes复杂吗?- 我认为 Kubernetes 并不比当今使用的任何流行编程语言复杂。...是的,即使是Windows用户,因为在开发/调试过程中,您可能会不时地转移到基于Linux的容器中。 有很多概念要学习吗? - 有很多概念需要学习,但这是有原因的。...仅此一点,让 Kubernetes 的使用变得更加有趣。 也就是说,使用 Kubernetes 意味着您仍然必须使用许多配置文件。但是现在我真的很喜欢和他们一起工作。...(您不可能抛出一堆打印语句或运行某种不存在的Kubernetes调试器。)在您熟悉一些有用的kubectl命令之前,您可能会不时感到有些茫然。
他们还使用Jenkins发起了针对性的违规行为,以维护对开发人员环境的访问。有许多记录良好的博客文章,讨论了通过漏洞利用,Web控制台和漏洞利用后的利用以及对Jenkins的访问。...如果是这样,已经获得域凭据的攻击者将能够进行身份验证并尝试利用Jenkins服务器。...当检测到恶意的Jenkins服务器活动时,识别可疑的进程树可能是一个有用的指示。例如,通过脚本控制台生成PowerShell命令时,会观察到以下情况: ?...经过几次评估,CrowdStrike红色团队确定了可以重新配置但不能创建作业的情况,反之亦然。 如示例所示,可以通过Web控制台通过查看默认页面来确定允许通过身份验证的用户使用哪些权限。...他们可以查看凭证或构建历史吗? 他们可以创建建筑或安排工作吗? 经过身份验证的用户具有什么权限? 这包括脚本控制台访问吗? 他们可以查看凭证或构建历史吗? 他们可以创建建筑或安排工作吗?
背景说明 我们当前这个系统和很多的第三方系统做了集成,出问题的就是其中一个三方系统。其实很简单,他们的系统会产生一些个人待办任务,然后待办任务的个数需要推送到我们的 APP 上,作为图标的角标显示。...以下是同事的经历,我转述以下。 就在定时任务跑起来后的第二个晚上,那本来该是一个平常的晚上,可是告警邮件扰人清梦。一看日志,内存使用空间过高,撑爆了,导致机器自动重启了。...windows 就这点好啊,还会自动重启(尴尬脸)。然后手动上去把服务启动起来,解决。 隔了一天,还是晚上,又报警了,服务器又自动重启了,又是内存使用空间过高。又手动上去把服务启动了。...我:你确定定时服务是 10 分钟一次,没有出现死循环吗? 同事:确定。 我:那他们的服务有使用 redis 之类的外部缓存吗? 同事:不知道。 我:。。。...既然你确定你调用的没问题,那肯定是他们程序出现问题把内存撑爆了呀,这有什么好怀疑的,让他们改吧。 同事:他们现在说自己没问题啊。 挖出真凶 好吧,既然他们说没问题,那我就来帮他把问题找出来吧。
如果您希望您的请求得到满足,您最终需要确定没有回复。你会等更长的时间吗?你想等多久? 那么,一旦你决定等待多长时间,你会采取什么行动?您是否再次尝试发送电子邮件?你尝试不同的传播媒介吗?...你认为他们不会这样做吗? 好的,现在这里到底发生了什么?我们希望看到这种请求-响应行为: 但是出了点问题。有几种可能性: 他们从来没有得到消息。...如果没有幂等属性,您可能会创建重复数据(如信用卡费用的情况)或导致竞争条件(即,如果您尝试更改您的电子邮件地址两次,并且第一个在第二个完成后重试)。...这需要最少的努力,并且可以说可以防止我们做出错误的决定,因此在许多情况下这可能是最佳选择。我们还需要问自己:我们的用户能找出正确的做法吗?他们是否有足够的信息和对其他系统的洞察力来确定如何前进?...不幸的是,这可能很难!消息代理也有权衡。您的用户对于何时需要重试会有自己的想法。例如,如果消息处理延迟,他们可能会决定重新提交,因为他们的订单尚未显示在订单历史记录中。
命令行工具 如果你能使用终端或命令提示符,那可以用 "aapt "工具来检查APK的内容,包括AndroidManifest.xml。...没有网络权限的APP可以联网吗 不能。 安卓使用基于权限的系统来管理对系统资源和API的访问,包括网络访问。APP必须在其清单文件中声明网络权限,以执行网络操作。...这是有可能发生的。恶意分子可以操纵应用程序和浏览器来隐藏数据传输,使用户难以发现。在这种情况下,用户可能不知道他们的设备正在向网络发送数据,他们的个人信息可能处于危险之中。...因此,用户应该要在安装APP前查看权限列表,以确定是否愿意授予网络权限。 能禁止有网络权限的APP联网吗 可以。 正如我们所知,大多数APP需要网络权限来运行其功能。...因为这些开发者已经用行动表明,他们重视用户数据安全。行动胜于空谈,你用着也会更安心。 其次是尝试手动关闭APP的网络访问,这里分享2个方法: 1.
如果他们成为一个障碍,不但不能工作,而且你会感到沮丧和停止尝试。 因此,工具能够建立敏捷及测试能力前置的通路,自动化和协作方式的工具是成功进入持续测试的关键。...您可以查看我们撰写的有关DevOps工具生态系统的博客系列,以获取具体的想法,但一般来说,我们建议以下提示: - 在购买工具之前尝试使用工具,让您获得他们的氛围和感觉,并了解他们的能力。...- 选择与您正在使用的现有工具集成的工具。持续测试和持续集成是关于使事情一起工作,所以尝试找到工具,轻松将自己融入您的工作环境。...持续测试是关于立即确定事情是否正常,所以请确保您可以轻松地进行设置。 2.思考“自动化” 如果您希望测试快速,顺利,那么尝试自动化您可以做的任何事情。...必须确保代码中的每个更改都不会影响您的产品?尝试自动化每个构建吧。在与人类交流之前,每天早晨需要喝咖啡吗?你也可以自动化。 越来越多的工具可以实现自动化。
但是我发现每次对引言和文献综述部分做出调整要求,学生们的反馈都非常慢。 有的时候,学生甚至会求饶,“老师,参考文献顺序能不能不动?或者全文都确定下来再统一做?每次调整一个,就需要很长时间!”...根据你目前使用的系统,网站会自动推荐给你适合的版本下载。我使用的是macOS,下载文件格式为pkg。 ? 下载页面区左侧是Python 3.6版,右侧是2.7版。请选择2.7版本。...网站会根据你的操作系统,自动找到对应的版本供你下载。 ? 因为我用的是macOS,所以这里网站提供的是苹果版本Atom。 下载之后,安装运行。...但是转换成word后,这脚注还在第一页吗? 我们到终端下,执行pandoc命令: pandoc demo-footnote.md -o demo-footnote.docx ?...参考文献列表已经根据GB/T 7714-2015的规范自动生成。 将来无论是对文献引用作增删、移动、修改,都可以通过执行上面的一条命令自动更新。非常方便。
保护表中没有聚集索引的b树(索引)或堆数据页的锁。 TABLE 表 问题:为什么要这么多锁的类型,MYSQL innodb 不仅仅有 row lock吗?...SQL Server数据库引擎使用动态锁定策略来确定最经济有效的锁。数据库引擎会根据模式和查询的特性自动确定在执行查询时哪些锁是最合适的。...并且SQL SERVER 也是可以在表的创建,或使用中进行锁释放可以自动进行升级的设置的,你可以打开表的锁升级,或禁止掉他。...为什么 当触发锁升级时,如果存在冲突锁,则会先增加更多的X锁(我想你应该是懂这个过程的),并且不同进程持有的同一表或分区上有并发的X锁,则锁升级尝试将失败。...其他的事务如果访问你的资源,你是不是就不在管他们死活。
下面的例子我自己经常使用,当然你有更好的案例也可以分享给我。 尝试新软件 对开发者而言,每天会催生出的各式各样的新技术都需要尝试,然而开发者却不太可能为他们一一搭建好环境并进行测试。...时间非常宝贵,正是得益于 Docker,让我们有可能在一条或者几条命令内就搭建完环境。Docker 有一个傻瓜化的获取软件的方法,Docker 后台会自动获得环境镜像并且运行环境。...译者注:虽然使用命令也能非常快地安装 MySQL 数据库,但是当用到最新的技术或者非常复杂的技术时,使用 Docker 便会是个非常好的选择,例如 Gitlab,普通用户大概需要一天的时间去搭建 Gitlab...同时,对于客户来说,我可以直接将 Docker 镜像提供给他们,而不必去做任何环境配置的工作,工作的效果也会和在他们演示中所看到的一模一样,同时不必担心他们的环境配置会导致我们的产品无法运行。...译者注: 运行示例的 JSON Server,同时使用示例中提供的 JSON 文件,只需执行一条命令便可以创建一个服务端的 API 应用。
我们发现这是一种更好的方法,因为我们已经尝试过了,而且我们已经非常努力地尝试过了。这只是一个例子,说明了这种转变。 现在,关于使用2.0栈进行编程,它是什么样子的呢?你实际上在做什么?工作在哪里?...这就是我们这些软件1.0程序员所做的,我们帮助软件2.0程序员,他们在做所有的工作,他们在为自动驾驶仪编程。我们试图用周围的基础设施来帮助他们。...这是给标记员的标注说明。然后你到了现实世界中,发现各种各样的疯狂的事情。这是在欧洲的某个地方,那里有之字形道路,你现在突然不确定了,我应该标注之字形道路吗?我应该直接穿过它吗?真的不清楚。...举个例子,我们需要一个自动雨刷功能。通常情况下,你会使用传感器,但马斯克看了其中一些挡风玻璃图像后说:“视觉可以看到,我们可以看到雨滴,所以我们可以直接使用它。”现在就成了我的问题了。...事实上,即使你把玉米片放在上面,它也会刮,根据这个叫做“它会刮玉米片吗?”的视频,它会刮番茄酱,但不会刮玉米片。这很酷。
//安装一路全确定就可以了 .NET Core SDK下载 2.安装Visual Studio Code....其内部已经有个系统自动初始化生成的Hello World程序!!! ?...6.cmd中进入项目路径然后尝试运行: 输入 d: 跳转到d盘 输入 cd 路径 跳转到项目路径 输入 dotnet run 尝试运行 成功!!! ?...他会让你选择环境运行,点击: .NET Core ? 4.等待一段时间后... 跳出一个json文件让你设置? 跳出一个警告: 译:缺少必需的资产构建和调试的c# vscode测试”。加入他们吗?...新的程序都会生成在win10-x64 里面 不过vscode还是在调试之前的程序 netcoreapp2.1 里面的.dll程序 不会去调试 win10-x64 这个新路径的 建议是 确定程序完成 后最加上
未加引号的服务路径,你能写一个恶意的二进制文件并重新启动受影响的服务吗? 可修改的服务二进制文件,他们SYSTEM是以管理员用户身份运行还是以管理员用户身份运行?...在那之后,通常是通过自动化PrivEsc枚举linPEAS或在某些情况下LINENUM。但是,强烈建议大家熟悉这些脚本执行的命令及其含义。这是帮助获取态势感知和手动识别漏洞的命令的极好参考。...是否有任何正在运行的服务或程序看起来是非默认的?他们脆弱吗? 特别注意以 root 用户 ( ps auxww | grep root)运行的服务- 在许多情况下,这些可能是您的 root 路径。...文件或文件夹的权限是否配置错误? 是否有任何定时任务或计划任务?谁来执行? 注意:如果您无法读取 cron 文件,请尝试pSpy - 它可能有助于识别重复的执行命令。...如果您发现任何以 root 身份循环运行的二进制文件,或者我们可以使用sudo提升的上下文或在提升的上下文中触发的二进制文件:我们可以写入该文件吗?我们可以劫持路径吗?
它足够高吗?是不是比要低,这样你要常 识升级这些包。如果还不行的话,你可以尝试编译你要编译软件的以前的版本。老版本通常使用老版本的库/程序 如果..../configure 提示找不到的是一个库(通常提示lib),并且你确定了已经安装了正确版本的库,现在尝试找到你的库文件的位置。...我会给你一些可能有所帮助的东西 如果您在使用gcc 4编译(使用gcc -dumpversion来查看)(我的补充gcc –version也可),可以尝试用旧版本。首先,请确定包的旧版版已经安装了。...尝试获得最新版的软件(使用CVS或者SVN或者源,或者下载每日快照)并且常识编译查看时候他们已经修复了bug。 make报的错还可能由特定库/程序的错误版本造成的。...尝试用sudo make install命令或者使用su命令成为root用户。
大多数人会认为以下的两个代码片段是等效的: ? 与下边的等效吗? ? 答案是并非如此,我们做个小测试。 ? 是的,在确有必要的情况下,条件表达式会升级数字类型。你希望这个程序抛出一个空指针异常吗?...你也不懂复合赋值运算符 很诡异吗?让我们来看以下两段代码: ? 直觉上,他们是等价的吧?...Integer 缓存,然后使用自动装箱(auto-boxing)和自动拆箱(auto-unboxing)。...这个会很有趣的,所以来一杯咖啡然后集中注意力。假设以下两种类型: ? 这是个很难的问题,Ross Tate 已经回答了。答案是不确定的: C 是 的子类型吗? ?...尝试在 Eclipse 中编译以上代码,Eclipse 会挂掉的!(不要担心,我已经提过 bug 了) 理解下这个… Java 中的一些类型的关系是不确定的!