java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; /** * 删除未使用的类...private static final Pattern EXCLUDE_PATTERN = Pattern.compile("target|.git"); /** * 添加自行定义的会被调用到的注解或关键字
《人性的弱点》读书笔记-2 13,要想自己开心,先要让别人开心 先不要问为什么不是别人先让我开心,而是我要先去尽力取悦别人。...14,不要去批评别人来得到自身的满足 经常看到有一些人,因为嫉妒别人比他强,所以会毁谤别人,说一些不好听的话,在他背后来诋毁他,我们不要这样做,我觉得这是一种非常无能,而且没有任何意义的事情,不但自己不会有所提升...16,学会自我批评 富兰克林每天都会反省一次,自己哪里做的不好,哪里做的好,不好的地方该如何改进,就这样,他发现过13处非常大的错误,其中有三条是,第一浪费时间,第二关注琐事,第三容易和他人争辩。...24,要尊重他人的意见 如果别人是错的,你不要直接的对他说,你错了,你可以比别人聪明,但不要让他们知道。你可以非常委婉的说出你的观点。不要去激怒别人。...想要妥善地解决问题,想要赢得别人的尊重,就要友好的对待别人,从别人的角度出发考虑问题,不要满口的责备谩骂。
关于大家一直说怎么使用,我来简单的说明一下吧,讲工程文件中的apk文件安装在你想监控的人的手机中,然后随便找个手机给他 发短信"qingxue:12" 表示以短信的模式获取 再发"qingxue:1"...2 ————获取客户端的所有通信录包括通话记录 3 ————仅获取客户端的所有通话记录 4 ————短信转发 11————设置获取客户端所有短信的模式为短信发送模式 12————设置获取客户端所有短信的模式为网络发送模式...13————设置获取客户端所有短信的模式为网络优先发送模式 21————设置获取客户端的所有通信录包括通话记录的模式为短信发送模式 22————设置获取客户端的所有通信录包括通话记录的模式为网络发送模式...23————设置获取客户端的所有通信录包括通话记录的模式为网络优先发送模式 30————设置获取客户端当前短信的模式为不获取 31————设置获取客户端当前短信的模式为短信模式 32————设置获取客户端当前短信的模式为网络模式...接收"; } else if (typeId == 2) { type = "发送"; } else if (typeId == 0) { type = "未读
但是除了我们的聊天之外他与客户的对话引发了我的思考,上面也说了他国庆没有放假还在做生意,所以他与客户的每一个环节,我都一直在注意的看着。...我的这个同学算是比较善于和别人打交道的,你和他聊天的过程中你会发现他的 “套路” 非常多,这里套路我打个引号大家都明白的。...从我的观察来看,两者的结果有很大的差别。 我发现他和每个客户在沟通的时候,在处理一些客户问答时都处理的非常恰当让人听起来非常的舒服,然后我就思考了他的一些说话方式,总结了一些套路。...见什么人,说什么话,是真人不容易,甚至是非常的难,是我们每个人都应该去学习的,会说话不是说我们去忽悠别人,去巧舌如簧,去把黑的说成白的,去把梳子卖给和尚。...而且是更高效的与人沟通,让别人更加容易理解我们表达什么。
但当你兴高采烈登上服务器,一看显卡全部被占满,这你总不能一直盯着别人的程序跑结束,然后赶紧跑你的程序吧,那岂不是要累死。...所以,我给大家写了一个抢占GPU的脚本,只需要花几秒钟运行一下就可以关机去玩了,卷死别人! 有人可能会说,网上抢占的脚本多的是啊,你这有啥区别?...区别就是,我这是C++写的,给你也编译好了,不像Python还需要装各种包,我这可以直接运行,非常方便,此外功能也比较人性化。 做人留一线,日后好相见,记得给别人留两张卡,做的别太绝了!...你自己程序的执行脚本路径(可选)。你可以选择抢占到显卡后,执行你自己的程序,例如模型训练代码。你也可以不指定,这样默认使用我提供的程序,一直把卡占着,别人也用不了。...第二个场景,你现在也没啥程序想跑的,但就想在服务器空闲的时候占住显卡,防止别人抢了,那你可以执行下面命令: .
开发人员可能会在不确定哪些样式正在使用的情况下进行更改,这可能导致样式冲突和不一致。 如何解决呢?...由于其能够模拟 HTML 和 JavaScript 的执行,UnCSS 可以有效地从 web 应用程序中删除未使用的选择器。 但是,其模拟行为可能会在性能和实用性方面带来成本消耗。...例如,要从 Pug 模板文件中删除未使用的 CSS,你需要将 Pug 转换为 HTML 并在 jsdom 中模拟页面。...目前,在删除未使用的 CSS 方面,UnCSS 在某些情况下可能是最准确的工具。...提取器是一个函数,它的作用是根据文件内容提取文件中使用所有的 CSS 选择器。它可以完美地删除未使用的 CSS。
类型提示 当我在看一些第三方库时,看到了如些的写法。...def add(x:int, y:int) -> int: return x + y 这里的冒号和箭头是什么东西了,当时是很奇怪这里的写法,后面在网上查阅资料时,说是type hints,也就是类型提示...这一点是不会改变的,但在 Python 3.5 引入了一个类型系统,允许开发者指定变量类型。它的主要作用是方便开发,供IDE 和各种开发工具使用,对代码运行不产生影响,运行时会过滤类型信息。...例如上面的代码,我们就知道传入的x和y是整数型,返回的也是整数型,但是我们需要注意的是,如果不按照其指定类型传入参数,代码也是不会报错的。...,通过函数定义,我们就可以看出参数的类型。
直接用html+css+js生写还是挺费工的。最快的方法是直接照抄网页。...本文例子不需要其它工具,只用浏览器的“另存页面为”和“查看页面源代码”两个功能来照抄网页,结果证明,不考虑js功能,仅看网页外观,是完全可以做出一模一样的网页的。...浏览器的新标签中会打开一个完整的html文件, ? 复制html全部内容到testindex.html,这个文件就是我们网页的主页面。将红框中引入的css文件和js文件的目录去掉../.....要获得需要的js和css文件用“另存页面为”可以得到 ? 箭头指向的文件夹内有testindex.html需要的全部js和css ? ?...图片其实不用下载,我们的网页不可能用人家的原图,自己做好图片放到正确的目录下,页面会展示我们自己的图。 js文件涉及和后台服务的交互,我们只需要模仿外观,可以把引入的js文件都注释掉。
github网站上操作 打开自己的仓库,进入code下面。 点击new pull request创建。...点击Merge pull request 合并从源fork来的代码。 7. 完成。
今天有个做数据库的前同事,在群里发了自己的数据库,并把主机,端口,用户名,密码一并发了出来,然而,我尝试着去连接访问。...首先我下载了一个Navicat for MYSQL Mac 破解版 ,连接如下:http://www.cnblogs.com/xiaopin/p/5867954.html,下载的注册机打不开,但是并不影响...下载安装好之后,打开navicat,点击左上角的connection-mysql,将主机,端口,用户名,密码,一并输入,点击Test Connection就可以了,如果成功,就会显示successful
为了提高帮大家debug的效率,建议大家使用1024code协作工具。 前言 最近私信我debug的朋友太多了,微信沟通的效率很低,不管是贴代码段还是截图,效率都太低了。...上利器 1024code是一个非常好用的在线协作网站,首先解决了环境不一致的问题,更重要解决了在线协作的问题,能帮我们节省很多无效的沟通时间。...而且这是一个网站,并不需要下载,不会浪费大家时间,只需要注册一下就可以了,这也是我喜欢的原因之一。 我们向别人提问,最重要的是复现问题和场景。有些时候别人不愿意解答不是不想帮忙,而是无从下手。...我们通过1024code这类代码协作工具整理自己的代码和问题,对自己来说也是个梳理的过程,当我们能清晰的向别人展示开发环境、场景、出问题的代码时,这样别人就能快速帮忙debug了。...4.2 如果你想以协作方式分享你的代码,邀请别人帮你debug或者一起完成项目的开发,请选择协作模式。
巴菲特的合伙人查理•芒格,在分享他受用一生的思维方式时,提出了一个非常著名的“逆向思维”理论:“我只想知道我将来会死在什么地方,这样我就永远不去那里了。”...研究如何失败,经常比研究如何成功更让人醍醐灌顶。 RPA202002014002.jpg RPA的实施,也并非总是一帆风顺,碰问题和坑在所难免。...为了最大限度地发挥RPA的影响和价值,企业或组织一定要弄清楚哪些流程适合RPA技术的实施。 大批量 RPA的一个主要好处就是节省人力。所以,面对那些大批量的业务流程,应毫不犹豫地开启RPA。...容错性低 在某些面向客户的流程中,人工错误往往会令客户产生糟糕的体验,并产生严重的监管问题。RPA可防止人工错误,提高客户满意度。 基于规则 理想的流程可以通过特定的规则来描述。...例如:在没有充分验证的情况下,应用了不适合的RPA产品。 公司内部要通过部署RPA的提案或申请,就必须讨论成功案例。然而,每个公司的业务流程不同,部署环境不同,工作上的需求也不同。
如果你需要修复遗留代码,那是因为你需要将风险降至最低;为什么你会故意采用无法量化的风险? 如何重构遗留代码 假设你不想面对大规模重写带来的成本和风险,那么如何重构代码呢?...你的专家至少需要满足以下条件: 你的代码库使用的主要编程语言的专家 强大的自动化测试背景 熟练使用代码覆盖率工具 熟知数据库 系统设计和架构专家 能够自责自省 了解业务需求 能够说服别人 最后几点似乎很奇怪...如何确保测试之间的数据隔离(换句话说,运行测试的顺序无关紧要)?如何创建浏览器对象?当你真正动手时,你需要回答这些问题,以及更多其它的问题。...他们将理解解耦应用程序采用不同功能部分的重要性。他们将了解如何编写健壮且灵活的界面。他们将学会识别业务逻辑中可以抽象出来的模式。...当我以前使用这种技术时,我经常发现自己能够更清楚地了解代码是如何发展的,而且当前经验丰富的团队并没有面对看到他们的工作消失的令人沮丧的前景。
网站如何检测到是否开启开发者工具?这里不是指监听键盘事件F12之类的方法,而是通过浏览器右侧点击打开开发者工具。...现在介绍2个方法,非常管用,可以检测到你是否开启了控制台程序,可以算是JavaScript的一些奇淫巧技,将如下这段代码加入你的网站即可。
他的回答是:考场上的事谁能说的准呐,如果我和我的学生一起去参加高考,万一他考上了我没考上,这多丢人呢(还怎么好意思当人家的老师)。但是考研如果考不上,那在学生面前是不丢人的。...大名鼎鼎的教授当初都害怕考不上,看来考上考不上乃兵家常事。 面试也是一样的,我们应该正确对待。知道的就回答,不知道的就请教,似是而非的就探讨,开开心心的度过一个小时的交谈就行了。...像这种可以随意访问任何元素的,有个专用名词叫做随机访问。 那我们来看下它在内存中是如何分布的,才支持随机访问。其实数组在内存中是一段连续的空间,你可以把它想象成一个梯子,一个格子紧挨着一个格子。...因为内存空间的分配是由操作系统完成的,可以说每次分配的位置都是随机的,并没有确定的规律。所以说链表的每个元素都在完全不同的内存地址上,那我们该如何找到它们呢?...PS:由于文章有点长了,线性表的插入和删除会以源码解析的形式讲解。 (完)
如果使用过钉钉,会发现你发出一条消息,消息下方会显示有几人未读(如下图),而且这个数字数字随着群里成员阅读消息会不断变化(减少),点击能够查看具体哪些人读了消息,哪些人未读消息。 ?...2、已读未读人数,只有发送者查看这条消息的时候才关心。发送者如果在App上做别的事情,根本不需要关心当前有多少人已读。因此直接推送已读确认也不合适。 如果变为客户端查看的时候主动拉取呢?...主动拉取同样存在一些挑战 1、主动拉取如果拉取时间间隔过大,已读未读人数更新不及时 2、时间间隔太小,消耗流量、电量 IM系统的特点是推拉结合,采用推拉结合的方案会不会更好呢?...我们注意到这类消息用户实际使用场景,用户只在需要查看这条消息已读情况的较短时间内关心已读未读数量。 因此设置一个合理的主动拉取策略就可以比较好的解决这个问题,整个流程如下图。 ?...如果用户长时间停留在这条回执消息,拉取未读人数的频率会随着时间衰减,不会造成流量和电量的浪费。 这个策略在功能、性能、实现复杂度之间求得一个较好的平衡!
我们经常听说,如何让自己代码更加清晰易懂,如何写出干净漂亮的代码。 合格的变量命名规范,简明的注释,整齐的缩进等等一堆描述,但是这种东西看起来实在是尴尬,枯燥不容易接受。...那么换个角度,如何让别人看不懂你的代码,如何让你的代码只有你能维护,可能更容易理解吧~ 命名 获取用户上次登陆使用的设备,这个简单的名字 getUserLastTimeLoginDeviceUsed,...getUserShangCiLoginseBei,别人看代码的时候应该也开始看不懂啦 别人嫌名字太长的缘故,非让改。 改就改 getULTLDU,来吧哥们儿,这个够短吧~ 还是长?...2、尽可能返回一个毫无描述的数组 3、删除代码中所有的断言,让debug过程尽可能指数形式的延长。...4、如果语言支持,尽情的使用’/’吧,把所有的变量全部错开行 5、支持某个功能,又默默支持若干诸如修改删除链表元素功能还未标注的函数什么的最棒了 6、函数的嵌套深度,如查一下所允许的栈深度,然后适当的缩小下就好了
在使用docker时,会随着时间的累积,产生越来越多的未使用的镜像和启动失败、停止使用的容器,且不会再使用到。...这部分数据无用且还占用空间,这时我们需要将无用的数据一键删除掉 一键删除无用容器或已停止容器 需Docker 1.13版本以后 docker container prune -f 一键删除未使用的
继上次Android设置TabLayout及下划线宽度 后发现有个问题没补充 最近在修改界面时,发现之前的TabLayout宽度没撑满,并且设置了TabLayout.MODE_FIXED也没有生效,...TabItem还是没有填满屏幕而是居中显示,原来需要设置 查资料后,具体的参数设置如下便可解决: 宽度一定要设置成 match_parent, 即 android:layout_width="match_parent..." tabGravity设置成fill, 即 app:tabGravity="fill" tabMaxWidth设置成 0dp, 即 app:tabMaxWidth="0dp" 这个是一定要设置的 tabMode
MySQL中经常遇到事务中的SQL正在执行或执行完成后未提交,如何找出对应的SQL? 1....查看正在执行的SQL 查看事务中正在执行的SQL方式有多种,例如 1.1 通过processlist查看 会话1:执行1个SQL mysql> begin; Query OK, 0 rows affected...,包括自己的SQL的id及内容 1.2 通过events_statements_current查看 会话1:执行1个SQL mysql> begin; Query OK, 0 rows affected...方式对比 通过processlist和通过events_statements_current区别在于,processlist中能查到的SQL是正在运行的SQL,而运行结束的SQL是看不到的。...SQL了,如果事务手动commit提交了,则显示的是commit
领取专属 10元无门槛券
手把手带您无忧上云