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

为什么在公司里访问不了家里电脑?

上篇文章「为什么我们家里IP都是192.168开头?」提到,因为IPv4地址有限,最大42亿个。...其实他们都是同一个数值,只不过大小端不同,读出来不一样。就好像同样数字345,反着读就成了543。这是为了兼容不同操作系统(比如linux和Windows)下大小端不同情况。...那问题就来了,有没有办法让外网机器访问到内网服务? 有。 大家应该听过一句话叫,"没有什么是加中间层不能解决,如果有,那就再加一层"。 放在这里,依然适用。...说到底,因为NAT存在,我们只能从内网主动发起连接,否则NAT设备不会记录相应映射关系,没有映射关系也就不能转发数据。...像上面提到服务器x,你也不需要自己去搭,已经有很多现成方案,花钱就完事了,比如花某壳。 内网穿透 到这里,我们就可以回答文章标题问题。 为什么在公司里访问不了家里电脑?

2K10

为什么在容器中不能 kill 1 号进程?

而容器中也是由init进程直接或间接创建了Namespace中其他进程。 linux信号 而为什么不能在容器中kill 1号进程呢?进程在收到信号后,就会去做相应处理。...运行命令 kill -9 1 里参数“-9”,就是指发送编号为 9 这个 SIGKILL 信号给 1 号进程。 为什么在容器中不能kill 1号进程? 对于不同程序,结果是不同。...如果信号被忽略了,那么 init 进程就不能收到指令了。 想要知道 init 进程为什么收到或者收不到信号,就要去看 sig_task_ignored()实现。...(force && sig_kernel_only(sig)):如果是同一个Namespace发出信号,为0。所以这个条件总是满足。...0000000000004000 [root@043f4f717cb5 /]# kill 1 # docker ps CONTAINER ID IMAGE COMMAND CREATED 重点总结 “为什么在容器中不能

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

为什么要创建一个不能被实例化

但如果有一天,你发现写了这样一个类: class People: def say(self): print(f'叫做:{self.name}') def __new...__(self): raise Exception('不能实例化这个类') kingname = People() kingname.say() 一旦初始化就会报错,如下图所示:...一个不能被初始化类,有什么用? 这就要引入我们今天讨论一种设计模式——混入(Mixins)。 Python 由于多继承原因,可能会出现钻石继承[1]又叫菱形继承。...显然,这样写会报错,因为两个类实例是不能比较大小: 但在现实生活中,当我们说 某人比另一个人大时,实际上是指某人年龄比另一人年龄大。...混入: 不能包含状态(实例变量)。 包含一个或多个非抽象方法。 参考资料 [1]钻石继承: https://en.wikipedia.org/wiki/Multiple_inheritance

3.4K10

为什么BERT不行?

当然了,bad case分析这块也聊了很多,多分析能发现其中端倪,知道模型需要什么,该怎么处理,再放一遍在这里,希望能好好阅读。...至于训练集,首先要说是训练集内部问题,其实还是数据数量和质量问题: 学习资料和练习题要足够,才能让模型学得会,学得好。 数据分布问题,不能偏科,各个类型数据最好都能覆盖。...这里背后逻辑可以参考这篇文章: 心法利器[45] | 模型需要信息提供够了吗 训练问题 针对训练问题,其实也就是一个经验问题了,多弄其实问题就会小很多,大家可以多去看各个论文使用超参,一般调差不多基本都不会有的...首先要做基线,一般是考虑折腾这个CLS,而在下游加插件时候,也要注意不能让BERT模型被学走,注意调整学习率、trainable,同时也可以结合MLM任务来维持模型稳定,平衡BERT原有的基础知识与实际场景问题差距...而文章本身输出并非是按照这个思路走,而是从一些大家经常问点深入来讨论,希望能从角度和风格来思考和回答问题。

1.2K20

对不起,健康码不能给你

题图摄于广州番禺 本文记录一次关于隐私保护事情。 近日,去了趟某运营商营业厅,开通一个新手机号。入门时,扫了场所码,显示是绿码。...营业员在帮我办理业务时,除了拍照身份证件外,还说要留存健康码和行程码。...这个要求就有点奇怪了,尽管我两个码都是正常,但作为从事隐私信息保护工作,对涉及自己隐私数据事情,觉得还是要和他掰斥一下。 首先,问他为什么需要留存两码?...因为进营业厅时候扫过各种健康码于是给他扣了个大帽子:过度防疫(另一个类似的帽子是“层层加码”)。...因为清楚地记得,行程码在使用时,用户只授权了用于防疫目的。至于其他目的,对不起,没授权你用,就算你理由多么冠冕堂皇,也不能随便给你。 至于他们留存健康码,更连个正当理由都没有。

37130

只有不明白Redis主从复制原理吗?

大家好,是小❤,一个漂泊江湖多年 985 非科班程序员,曾混迹于国企、互联网大厂和创业公司后台开发攻城狮。 1....2.2 为什么要读写分离 1)防止并发 从上图我们可以看出,数据是由主节点向从节点单向复制,如果主、从节点都可以写入数据的话,那么数据一致性如何保证呢?...runID:每个 Redis 实例唯一标识,当主从复制进行时,该为 Redis 主节点实例ID。由于首次同步时还不知道主库实例ID,所以该第一次为 ?...offset:从库数据同步偏移量,当第一次复制时,该为 -1,表示全量复制 主服务器收到 PSYNC 命令后,会创建一个专门用于复制后台线程(replication thread),然后记录从节点...所以我们需要根据业务量和实际情况来设置 repl_backlog_buffer 。 4. 小结 面让架构易于扩展,另一方面防止单体故障:当主库挂了,可以立即拉起从库,不至于让业务停滞太久。

28031

为什么要写自己框架?

曾几何时,觉得很兴奋,在如此短时间内就可以做到这样高度,让十分开心。开发出内容也完全符合校内应用需求。变成了一个别人眼中“大师”。 但事情并没有往想象地方发展。...框架用时间久了之后就发现了一个问题:真的有学习过吗?内容真的有用嘛,这些框架内东西能对今后有帮助吗,当然,这种想法不是一天形成,还有一个小故事。...但当有一天在讲授开发经验时候,当我当着大家面真的静下心来写需要展示一个类时候,以前用了这么多框架,发现在这么多人面前已经几乎写不出来一个正确类了!!...于是又开始新一轮学习,看大量书籍,有一天重新打开Yii框架在当时看起来很难理解代码时候发现:居然有点明白它工作原理,知道整体架构了!...如今框架图.png 之后工作就是让框架更加丰满,不敢说比得上一些主流框架,说实话根本不能够和他们相比,无论从结构、思考还是思考上,编出主流框架他们才是真正大师。

1.3K20

为什么Redis这么“慢”?

那么在业务访问时,必须等这个过期任务执行结束,才可以处理业务请求。此时就会出现,业务访问延时增大问题,最大延迟为 25 毫秒。 而且这个访问延迟情况,不会记录在慢日志里。...但以上这些逻辑都是在访问 Redis 时,真正命令执行之前执行,也就是它会影响我们访问 Redis 时执行命令。...所以在部署 Redis 进程时,如果需要开启 RDB 和 AOF 重写机制,一定不能进行 CPU 绑定操作!...下面就针对这两块,分享一下认为比较合理 Redis 使用和运维方法,不一定最全面,也可能与你使用 Redis 方法不同,但以下这些方法都是在踩坑之后总结实际经验,供你参考。...总结 以上就是在使用 Redis 和开发 Redis 相关中间件时,总结出来 Redis 推荐实践方法,以上提出这些方面,都或多或少在实际使用中遇到过。

3.6K10

常用缺失插补方法

有的时候,面对一个有缺失数据,只想赶紧把它插补好,此时并不在乎它到底是怎么缺失、插补质量如何等,只想赶紧搞定缺失,这样好继续进行接下来工作。 今天这篇推文就是为这种情况准备!...但是它有一个最大问题,不能一次性填补整个数据集缺失。 比如我有一个数据集,知道它有缺失,但是不知道在哪些列,但是只想快速填补所有的缺失,这时候这个R包就点力不从心了。...关于R语言中缺失插补,大家遇到最多教程应该是mice包,不过不太常用,所以就不介绍了。 一般来说,如果只是简单均值或中位数填补的话,不需要R包,自己写一行简单代码就搞定了。...不想知道这些缺失具体情况,只想立马把它们填补好,不然没法进行下一步操作!...8.000000 3.00 3 ## 8 2.00 5.000000 4.00 3 ## 9 2.28 6.000000 4.00 3 ## 10 1.00 2.000000 4.15 2 以上就是常用缺失插补

1.1K50

左下角是多少?

本题所运用知识点,我们之前都讲过了,细细品味一波 513.找树左下角 给定一个二叉树,在树最后一行找到最左边。 示例 1: 示例 2: 思路 本地要找出树最后一行找到最左边。...我们来分析一下题目:在树最后一行找到最左边。 首先要是最后一行,然后是最左边。 如果使用递归法,如何判断是最后一行呢,其实就是深度最大叶子节点一定是最后一行。...(TreeNode* root, int leftLen) 有的同学可能疑惑,为啥不能递归函数返回返回最长深度呢?...其实很多同学都对递归函数什么时候要有返回,什么时候不能有返回很迷茫。 如果需要遍历整颗树,递归函数就不能有返回。如果需要遍历某一条固定路线,递归函数就一定要有返回!...if cur.right: queue.append(cur.right) return result 旧文链接:二叉树:左下角是多少

54340

用编程模拟疫情传播来告诉你: 为什么现在你还不能出门

看完视频你就明白为什么不能出门了,千万不要放松警惕!(@Ele实验室 ) 在家憋了一段时间的人们,耐心也在一点一点消磨中。很多人已经忍不住开始想蠢蠢欲动了。...他们总有一套自己理论:我们城市才一点确诊病人,而且在距离我们很远地方,就出去一会儿,哪有那么巧合,就感染上了。没事儿!大街上都没人,戴着口罩又没事。...疫情防控工作防控点或者是成功与否主要在于感染人员是否戴口罩、医院里隔离床位(或者是自我隔离位)、人口流动。...因此通过这一次疫情防控,为了你、、他,请以后感冒发烧生病之后,能够带个口罩,减少传染率。因为不知道你体内这一个病毒威力如何。 ?...因此一个疫情发生,必须依靠强大有力政府比如中国,和广大医院医生护士等伟大工作者们努力,所以平时请尽量尊重他们这个职业。 ?

2K10

为什么HibernateDaoSupport没有注入SessionFactory

前言 很早之前,就打算写这一篇文章了(其实有很多源码分析文章打算写,但是自己太拖延了导致很多文章搁浅了)。为什么要写这一文章呢?...事情缘由是同事在SpringBoot项目中有一个A类继承HibernateDaoSupport,但是程序运行总是抛出没有成功注入SessionFactory错误,后来debug Spring源码解决了这个问题...这个错误原因是A类RootBeanDefinition中autowireMode为0,在AbstractAutowireCapableBeanFactory类中populateBean方法中没有执行到...属性 4.假设我们通过某种手段,使其autowireMode为1,就会调用autowireByName方法,会获取到MySessionFactory属性,并通过getBean()方法获取MySessionFactory...将属性注入到MyBaseDao中。

3K10

为什么喜欢JavaScriptOptional Chaining

从 ES2015 开始,对代码影响最多功能是解构、箭头函数、类和模块系统。 截至 2019 年 8 月,一项新提案 optional chaining 达到了第3阶段,这将是一个很好改进。...这就是喜欢 optional chaining 原因。 2.1 数组项 但是 optional chaining 功能可以做更多事情。...defaultValue 结果为defaultValue, 否则表达式为variable 。...rightHandSide 中遇到无效,右侧访问评估就会停止。这称为短路。 我们来看一个例子: const nothing = null; let index = 0; nothing?....为什么喜欢它? 喜欢 optional chaining 运算符,因为它允许从嵌套对象轻松访问属性。它可以减少通过编写样板文件来验证来自访问器链每个属性访问器上无效工作。

1.1K30

为什么 WordPress 网站被封了?

作为站长,最不想看到就是网站被封了,封禁不仅影响网站业务,甚至会有罚款和监禁风险。...内容审核服务提供了以下两种使用方法,可以覆盖不同使用场景: 自动审核 配置自动审核,可以自动检测存储桶中新上传文件,并支持自动冻结(禁止公有访问)已检测违规内容。...配置自动审核方式如下: 历史数据审核 历史数据审核支持创建任务对存储桶中已有的文件进行一次性批量审核,并支持自动冻结(禁止公有访问)已检测违规内容。...上述两种审核配置都支持用户自定义审核策略,通过设置自定义策略可以定制涉黄涉政等个性化场景审核;审核后支持按照指定分数范围进行冻结,智能机审+精确人审方式帮你有效避免违法内容传播;审核结果可以通过配置回调链接返回给用户...查询审核任务:通过发起任务时获取到任务ID,直接查询对应任务ID网页审核结果。审核结果中包含了审核是否成功、网页审核处理建议、违规图片和文字等。

3.4K50

为什么进程被kill掉了

第二次执行这个程序也没问题,但奇怪是,此时第一次执行那个程序却被kill掉了: ? 这是为什么呢?...这也就解释了为什么上面第二次运行该程序时,mmap是没有报错。...上面我们还提到oom_score_adj有一个特殊为OOM_SCORE_ADJ_MIN,即-1000,表示该进程不能被kill掉。 各进程oom_score_adj默认为0。...这也就解释了,为什么上面在第二次执行那个程序时,被kill掉是第一次执行那个进程,而不是第二次执行进程,因为第一次执行那个进程,占用物理内存更大。...比如,我们可以通过 echo -1000 > /proc/[pid]/oom_score_adj 命令,将oom_score_adj设置为-1000,即该进程不能被kill掉。

2.3K51
领券