我们生活在一个繁忙的世界里,当我们需要查找文件和数据时,使用 ls 命令可以节省时间和精力。但如果不经过大量调整,默认的 ls 输出并不十分舒心。...当有一个 exa 替代方案时,为什么要花时间眯着眼睛看黑白文字呢? exa 是一个常规 ls 命令的现代替代品,它让生活变得更轻松。这个工具是用 Rust 编写的,该语言以并行性和安全性而闻名。...而且它体积小、速度快,只有一个二进制文件。 跟踪文件 你可以使用 exa 来跟踪某个 Git 仓库中新增的文件。 image.png 树形结构 这是 exa 的基本树形结构。...image.png 我相信 `exa 是最简单、最容易适应的工具之一。它帮助我跟踪了很多 Git 和 Maven 文件。...它的颜色编码让我更容易在多个子目录中进行搜索,它还能帮助我了解当前的 xattrs。
现在来思考一下: 如果我们写了很多数据进去,比如几十万条,我们要查一个指定id的数据,要按照这样一条条比对,那不得等到猴年马月去了? 为什么要一条条比对呢?...---- 仔细思考一下,前面我们把数据按顺序一条一条码在一起,查起来为什么快?...而每一次走入一个分支,就对应着一次文件I/O,所以在实际使用中,不会使用二叉树,而是使用开了非常多个叉的树——B树或者B+树。...如果用B树或者B+树来将文件中的数据在逻辑上组织起来,要查找数据就会快得多。 用id来查找数据问题解决了,但如果要用name来查找又该怎么办呢?...我看很多朋友简历上的项目经历,要么是XXX管理系统,要么是一个Web服务器,这些都太烂大街了,你要是写上一个手写一个数据库系统,那绝对能让面试官眼前一亮。
); } // output // before await - Custom thread - 16 // after await - .NET ThreadPool Worker - 6 我们希望在同一个线程上运行...因此,我们需要一种方式来确保我们的代码在同一个线程上运行。 那么接下来我们分析一些想法和效果。 加配!加配!加配! 我们已经知道了,实际上,常驻任务不能稳定触发是因为 Task 会在线程池中运行。...这显然不是错误的做法,因为这可以使得我们的代码更加高效,提升系统的吞吐量。但是,如果你想要让 Thread 稳定的在同一个线程上运行,那么你需要考虑使用同步重载的方法。...但实际上它反而是一个非常简单的死锁演示装置。...但实际上,这段代码会死锁。 因为,我们的 MyScheduler 中,我们在一个死循环中,不断的从队列中取出任务并执行。但是,我们的任务中,又会调用 Wait 方法。
我没能实现始终在一个线程上运行 task 前文我们总结了在使用常驻任务实现常驻线程时,应该注意的事项。但是我们最终没有提到如何在处理对于带有异步代码的办法。本篇将接受笔者对于该内容的总结。...因此,我们需要一种方式来确保我们的代码在同一个线程上运行。 那么接下来我们分析一些想法和效果。 加配!加配!加配! 我们已经知道了,实际上,常驻任务不能稳定触发是因为 Task 会在线程池中运行。...这显然不是错误的做法,因为这可以使得我们的代码更加高效,提升系统的吞吐量。但是,如果你想要让 Thread 稳定的在同一个线程上运行,那么你需要考虑使用同步重载的方法。...但实际上它反而是一个非常简单的死锁演示装置。...但实际上,这段代码会死锁。 因为,我们的 MyScheduler 中,我们在一个死循环中,不断的从队列中取出任务并执行。但是,我们的任务中,又会调用 Wait 方法。
PlaneWar简介 a game-PlaneWar,Written by Python 这是一个用Python写的打飞机游戏,类似当年的微信打飞机。下面有相关的截图。...以后打算用Java再写一个。里面的代码就不详细介绍了。有兴趣的可以访问我的GitHub项目。不过需要安装Python环境,最好是Python3环境。
最近,Github热榜冲上来一个名叫--的项目,这应该是猿妹见过的取名最随意的项目,也是目前看过的最完整的停车场系统。...,防止非法数据录入 用户手机查询停车记录详情可自主缴费(支持微信,支付宝,银行接口支付,支持每个停车场指定不同的商户进行收款),支付后出场在免费时间内会自动抬杆。...vue-typescript-admin-template 文件服务fastDFS 短信目前仅集成阿里云短信服务 关于创建者 创建者4年前曾就职于开发停车场系统的公司,发现目前国内该领域垄断,技术过于陈旧,没有一个规范...,故个人用来接近1年的时间在业余时间开发出这种系统,现代化标准的互联网应用,定位大型物联网大数据云平台系统 该项目代码完全开源,完全自主原创,创建者已经在Linux环境中测试过,而且出了详细的教程文档...如果你不仅仅是想要学习系统代码,那你自行购置摄像头、道闸,再部署上这个系统,就能将这个停车系统付诸实践了。
当然了,我不是那种人?。 因此,在创作者打开编辑器开始写作的时候,每一分一秒都可以说是黄金时间。...当然,这个小哥可不只是打打嘴炮,简单说说而已,为此他在 GitHub 上创建了一个项目:The Most Dangerous Writing App。...因此我抱着试一试的心态打开了这个项目,体验了一下。 在进行了简单的初步体验后,我内心的真实感受是: 这样的写作方式也太 TM 刺激了吧!...但是,当后面真正开始进入状态的时候,创作效率也立即提升上来了,脑子也完全 Focus 在了内容创作上。 其实,当我们平时记录一些流水账或日常做笔记的时候,5 秒钟的思考时间已经足够。...这里比较重要的一点是,你能否在短时间内快速进入到写作状态。 此外,这个项目还可以通过设置创作时间和词汇数,来指定一个创作目标。只要你在指定目标内完成任务,创作的内容便不会被删除: ?
进行部署测试,报如下错误提示找不到方法: java.lang.NoSuchMethodError: org.apache.hadoop.hive.ql.session.SessionState.reloadAuxJars...origin v2.4.2:v2.4.2 git checkout v2.4.2 2.3 编译CDH的Spark源码方式 通过编译Spark源码的方式任然没有成功,接下来直接下载CDH Github上的...通过部署测试发现, 可以通过beeline访问Thrift Server服务,在执行SQL命令时无法正常读取Hive上的库和表。通过后台也会报错 ?...将编译成功的spark-hive-thriftserver_2.11-2.4.0.cloudera2.jar包部署至CDH5和CDH6集群中均包如下错误: ?...2.6 Gateway上使用hive1的依赖包方式 通过在C6上使用C5的依赖包的方式部署Kyuubi测试是否能够正常部署使用Thrift Server. 1.将C5的/opt/cloudera/parcels
当然了,我不是那种人?。 因此,在创作者打开编辑器开始写作的时候,每一分一秒都可以说是黄金时间。...当然,这个小哥可不只是打打嘴炮,简单说说而已,为此他也在 GitHub 上创建了一个项目:The Most Dangerous Writing App。...因此我抱着试一试的心态打开了这个项目,体验了一下。 在进行了简单的初步体验后,我内心的真实感受是: 这样的写作方式也太 TM 刺激了吧!...但是,当后面真正开始进入状态的时候,创作效率也立即提升上来了,脑子也完全 Focus 在了内容创作上。 其实,当我们平时记录一些流水账或日常做笔记的时候,5 秒钟的思考时间已经足够。...这里比较重要的一点是,你能否在短时间内快速进入到写作状态。 此外,这个项目还可以通过设置创作时间和词汇数,来指定一个创作目标。只要你在指定目标内完成任务,创作的内容便不会被删除: ?
看到这里,我们不得不开始思考一个问题: 狗屁不通文章生成器,到底是为什么而诞生的?对世界的意义又是什么?(误) 本着不懂就问的原则,量子位戳了一下生成器的作者萌老师,他给了我们一个精彩的答案。...“你是一个很重要的儿子的父亲,别觉得我忘了这件事。” 他说完亲了我一下。 "A man of honour!" I cry, and we kiss again. “一个荣耀的人!”...然后,我先拉起了小女儿的手。 至于,狗屁不通文章生成器究竟是一个怎样的算法,萌老师在项目里写道: 鄙人才疏学浅并不会任何自然语言处理相关算法,而且目前比较偏爱简单有效的方式达到目的方式。...还有的同学,选择了在艺术风格上精益求精。 比如用世界上最好的语言实现渲染图片功能。 ? 感觉就算学生会退会申请需要手写六千字,也完全不用怕了呢。 ?...大概,上千条评论总结起来就是一句话: 够沙雕,我喜欢。 ? One More Thing 萌老师说,他的两大小梦想就是上 github 趋势榜和上热搜,没想到因为这一次 “突发奇想”,全都实现了。
但是我们换一个 user_id,执行就很快。从线上业务表现来看,大部分用户的表现都正常。我们又用一个数据分布与这个用户相似的用户去查,还是比较快。...对于 MySQL 慢 SQL 的分析 在之前的文章,我提到过 SQL 调优一般通过下面三个工具: EXPLAIN:这个是比较浅显的分析,并不会真正执行 SQL,分析出来的可能不够准确详细。...但是在进一步定位之前,我想先说一下 MySQL 的 InnoDB 查询优化器数据配置。...这也引出了一个新的可能大家也会遇到的问题,我在原有索引的基础上,加了一个复合索引(举个例子就是原来只有 idx_user_id,后来加了 idx_user_status_pay),那么原来的只按照 user_id...结论和建议 综上所述,我建议线上对于数据量比较大的表,最好能提前通过分库分表控制每个表的数据量,但是业务增长与产品需求都是不断在迭代并且变复杂的。很难保证不会出现大并且索引比较复杂的表。
可vscode也不是完美无瑕的,有些毛病,github issue上多少人提了多少遍了,无动于衷! 微软就是有钱,无视一众小开发者。 下面是vscode项目一个月的改动量,更新的得有多频繁。...如果你用了列表之外的任何版本的发行版,不好意思,连错误都不会告诉你,就是连不上。 一定要认准 not work,还有if怎么怎么那些小字。 微软自己都没测试过,发出来让用户当小白鼠。...创建项目千万不要在默认目录 vscode跟windows一个脾气,天天更新,强制弹窗。进来一次看见一次。 vscode更新升级原理也较为简单,就是新文件覆盖旧文件。 你的项目文件,会清空。...你辛辛苦苦半个月,一个升级回到解放前。 升级打补丁是好事,可是也可见微软的vscode不是扩展插件多,而是bug多到来不及修。...写在最后 希望上面的情况,你都用不上。happy coding :)
整体看上去,这就是一个BASIC程序,他的第一印象是从杂志上输入的内容,或者是杂志的副页,毕竟这在当时还是相当普遍的。...随后在好友的激励下,博主毅然决定,复活这段代码,让游戏重新运行起来。 把纸质代码加载到TRS-80模拟器上 首先需要解决TRS-80的问题。...就是这么一台“古董机”,要真正入手的话除了在eBay上买一台,就要从真正的收藏家那里入手了。 不过好在,现在有一个很好的TRS-80模拟器,叫做trs80gp。...和很多人一样,现在要写一个这样的程序,哪怕是在TRS-80上,写出的代码可能都会更有条理,也更紧凑,当然bug也会少很多。...最关键的是,从这些旧代码中也可以看出这位博主的创造力,在这点上可能码农们都一样,喜欢创造东西,也渴望这些东西能够得到别人的喜爱。
一个内网的网页,用来校验语法错误并保存。 还有一个数据库连接软件dbeaver,用来连上去跑SQL。...一时半刻我看得眼花缭乱,不禁问他:难道没有什么好的工具可以统一编辑、format、校验语法错误的事吗?他告诉我没有,至少在免费软件里没有。...从那刻起,我诞生了一个想法——撸一个和Flink SQL Helper差不多的插件,但是for Hive and Spark SQL。...我趁着国庆休假的时候完成了大部分逻辑,并陆陆续续自测、在公司里小范围推广,收集反馈,目前已经打磨的比较好了。那么现在就来给大家介绍介绍这个好东西。...老规矩,如果大家有任何建议或者需求、问题反馈,可以在Github的Issue(github.com/camilesing/…)中反馈,我看到后会第一时间回复。
最高级的红酒,一定要掺上雪碧才好喝。 基于这样的品味,我设计出了一套在经典nosql数据库redis上实现SQL引擎的方法。...既然redis号称nosql,而我偏要把SQL加到redis上,于是这个技术方案取名为【YesSql】。 1.在redis上实现SQL查询的技术基础 redis上可以执行lua。...2.实现细节 2.1 create table 假定我只支持number和string两种数据结构 把整个按行组织的表看成由N个字段组成的列存储 也就是说,字段的组织是:table_column ->...column2 number unique index column2, number_index column3 ) 2.2 insert 插入时先要使用redis的INC指令得到一个新的...,知道最终确定rowid的集合 2.4.3 select部分 每选择一个列,就意味着要输出这个列的值给查询方 字段上的表达式,也比较容易实现 2.4.4 group by部分 可以建立一个所有group
大家好,又见面了,我是你们的朋友全栈君。...;那么第一次调用的时候,肯定是进去了;发现一个方法replaceSelfWithView(view,parent);view就是我们在布局文件中给viewstub指定的layout所引用的那个布局;parent...就是getParent方法得到的,也就是acticity的填充布局LinearLayout; 进去看一下: private void replaceSelfWithView(View view, ViewGroup...的setVisibility()方法可以实现,这是为什么呢?...,假设现在我没有调用inflate方法,而是直接点击了show按钮;然后引用布局也可以绘制出来;这就是我在写demo的时候,直接上去点击show按钮,竟然也可以显示的原因。
由于Handler对象是在主线程中创建的,所以可以在handleMessage()方法中安心地进行UI操作。 通过一个例子来验证一下:活动MainActivity中有一个按钮和一个TextView。...那么,为什么会发生内存泄露呢?...这时候,我又自然而然地创建一个静态内部类,继承自Handler类,然后重写其handleMessage方法。...如果我不持有对外部类的引用了,那么我怎么使用外部类的方法和对象?毕竟我是要在handleMessage()方法中进行UI操作的。...即我们在该内部类中声明一个对外部类对象的弱引用。这样即可以调用外部类的方法,又不会导致内存泄露。
关于android中对图片处理的内容我没怎么看过,所以不会也是在情理之中。...可以看到一张原图和三张处理之后的图,左边和右边的图的上部和底部不是对称的,只有中间的那张图是对称的,我希望得到的结果图片就是中间的那张。为什么会出现三张不同的旋转图片呢?原因是旋转中心不一样。 ...(R.id.iv2); view3 = (ImageView) findViewById(R.id.iv3); view4 = (ImageView) findViewById(R.id.iv4...因为旋转中心并不在图片的对称点上,所以得到的结果就是图片上下不对称。 中间图片: ? 中间的图片是对称的,那么是如何得到的呢?...按照前面所说,因为旋转的中心是(0,0)不在图片的对称点上,那么我们只要让旋转中心在对称点上就可以了,这就要说preTranslate()和postTranslate()方法了,这两个方法可以实现我们所谓的旋转中心的改变
领取专属 10元无门槛券
手把手带您无忧上云