很多时候我们需要使用命令行进行一些操作,在 Mac 中有自带的终端(Terminal)可以使用,但功能比较简单,其他的一些工具也使用过不少,下面就简单介绍下我在 Mac 中用过的一些命令行工具。...使用也很方便,而且还支持中文,目前是我的主要 shell 工具,不过功能虽然强大我也只是用到了 ssh ,SFTP 我用的另一个工具 Transmit 。...4、安装 NERD FONTS 字体 因为后面使用的主题中有的会有一些小图标,默认的字体可能会不支持,导致图标位置出现乱码: 安装 NERD FONTS 字体: 官网:https://www.nerdfonts.com...10、关闭单击选框 iTerm2 更新 3.5.0 版本后,点击窗口出现紫色框,如下图: 因为我设置了背景,这样选中后就变得非常难看,可以在设置中进行关闭: 11、设置右键粘贴 选中复制,右键粘贴这是我使用...shell 时的个人习惯,当然在 iTerm2 中也可以进行右键粘贴的设置: 顶部页签选择 Pointer 后,下面的二级页签选择 Bindings 添加一个新的绑定,按照上图的配置即可
一、背景 官方提供的spring boot starter的配置项,我们用IDE配置的时候一般都有自动提示的,如下图所示 而我们自己自定义的配置却没有,对开发非常不友好容易打错配置,那这个是怎样实现的呢...二、提示原理 IDE是通过读取配置信息的元数据而实现自动提示的,而元数据在目录META-INF中的spring-configuration-metadata.json 或者 additional-spring-configuration-metadata.json...三、实现自动提示 以我这个自己开发的starter中的自定义配置文件为例,如果自己手动创建这些元数据的话工作量比较大,使用IDEA的话有自动生成功能 3.1....引入依赖spring-boot-configuration-processor 在zlt-swagger2-spring-boot-starter工程中添加以下jar包 ...重新编译项目 项目在重新编译后就会自动生成spring-configuration-metadata.json文件 四、测试 自定义的swagger配置已经能自动提示了 参考资料 https:/
要使您的网站在用户访问时出现“将此站点作为应用安装”的提示,您需要为网站添加一个名为“manifest.json”的文件。这个文件包含了网站的基本信息,如名称、图标等。...接下来,您需要在网站的HTML文件中的标签内添加以下代码,以引用manifest.json文件: 完成以上步骤后,当用户访问您的网站时,他们的浏览器将显示“将此站点作为应用安装”的提示。...如果提示没有出现,可以尝试以下方法进行排查: 确保manifest.json文件正确放置在网站根目录中。 确保HTML文件的标签内正确引用了manifest.json文件。 清除浏览器缓存并刷新网页。...有时浏览器会缓存旧的网页内容,导致更新不及时。 使用浏览器的开发者工具检查是否有错误。在Chrome浏览器中,可以按F12打开开发者工具,然后点击“应用”选项卡,查看“清单”部分是否有错误提示。...如果问题仍然存在,请提供更多关于您的网站的详细信息,例如使用的框架、浏览器类型等。这将有助于我为您提供更具体的解决方案。
pg有很多逻辑解码的插件,其中pg原生的逻辑解码工具pg_recvlogical就可以使用,它使用默认的test_decoding的插件,该插件位于pg源码contrib/test_decoding目录下...下面具体看看pg_recvlogical的使用以及在主备脑裂时候如何找回丢失的数据。...,也可以不启动,在需要解码xlog时再启动解码) [postgres@db1 pginst1]$ pg_recvlogical --start -S logicslot -d test -f logical_decoding.log...使用逻辑解码有几点需要注意: 1、逻辑复制槽使用一定要注意因为无法消费造成主库的xlog堆积的问题 2、如果之前已经解码过一段区间的xlog,restart_lsn会进行推进,这时如果新解码的区间包含原有...lsn区间,会忽略原来的xlog日志,也就是说连续对某段xlog进行两次解码,第二次是解码不出来内容的。
一、简介 经常利用Python进行数据可视化的朋友一定用过或听说过plotly这样的神器,我在(数据科学学习手札43)Plotly基础内容介绍中也曾做过非常详细的介绍,其渲染出的图像以浏览器为载体,...R包中有着函数ggplotly(),可以将ggplot2生成的图像转换为交互式的plotly图像,且还可以添加上ggplot2原生图像中无法实现的交互标签,最重要的是其使用方法非常傻瓜式,本文就将结合几个小例子来介绍...ggplotly()的神奇作用; 二、ggplotly()的使用 我们从一个简单的小例子出发: library(tidyverse) library(plotly) p <- ggplot(iris...式的交互操作,注意上图中我们鼠标放置点位对应显示的悬浮标签,其中的内容是默认的格式,即在这张ggplot2图像中所涉及到的所有信息,在上图中即为横纵轴对应的数据,以及在定义形状和颜色时使用到的分类属性信息...在上图中我们微调了图例的位置,但是对上图使用ggplotly()后效果如下: ? 可以看到图例并没有得到改变,因此在实际应用中使用ggplotly()还需慎重考虑。
geomnet是一个基于ggplot2可视化图形和网络的R包,它使用sna包计算网络布局,并且包含了使用ggplot2绘制圆的geom_circle函数。...geomnet使用的格式 #计算节点的度: TEnet % group_by(from_id) %>% mutate(degree = sqrt(10 *...例一 绘制后,将鼠标放置在图中的节点或者边上,会提示节点/边的详细信息 library(geomnet) library(plotly) data(blood) #blood是geomnet自带数据...例二 绘制后,将鼠标放置在图中的节点或者边上,会提示节点/边的详细信息。右上方是工具栏。...(gg) 小编总结: 除了Cytoscape软件以外,我们也可使用geomnet包来绘制网络图,而且这种交互式展示方法可用于数据库的设计中,美观且功能性强,大家可以借鉴哦!
包下载及加载: devtools::install_github("ropensci/plotly") library("plotly") library(ggplot2) 这里我将使用ggplot2的内置数据集...为了更加明显的看出最终的动效,这里使用随机取样,只抽取500个记录。...尽管ggplot的作者在图表背后针对默认的图表主题及背景做了深度美化,但是没有动态效果这一点儿着实让人感觉有点儿美中不足: 我所说的动态效果是指:当鼠标悬浮到任何一个数据点,立马会有弹出文本框显示该数据点的具体指标信息...这是我所理解的动态图表的最基础属性。 但是有了plotly包的辅助,ggplot所做出来的图表立马可是实现以上所述的功能: 而所需要的函数却极其简单: ggplotly() ?...以上图表中加入了经济学人的主题及配色模板,动态效果依然还在,有了这种动态效果,展示呈现多维数据方面,省去了不少麻烦,特别是分类较多时,一时半会很难弄清楚某种分类的整体分布情况,而通过动态选择,可以很容易的过滤掉暂时无关的分类项对信息获取的障碍
ggplot 的教程大放送之前,我想先把我屯的一些学习资源给大家看看~ 该网站链接:https://www.r-graph-gallery.com/histogram_several_group.html...比如这个plotly::ggplotly 函数,就可以在ggplot 对象基础上,作出漂亮的交互图片: 高阶者们的大礼包 该选项会链接到一个网站data-to-viz:https://www.data-to-viz.com.../caveat/pie.html 该网站汇集了绘图时应该避免的各种问题: 比如排名前十的问题: 这里看看饼图的问题: 对于人类来说,似乎饼图并不是一个很好的表现数据比例及其差异的选择:甚至我们还会让它变得更糟...我们完全可以用柱状图替代它(ps:我之前用过一个ggstatsplot 包,也挺不错),或者用棒棒糖图: 或者下面这种树状分类图?...其他内容 绘图不是我们的,是世界的,我们要分享;绘图也不是R 独占的,而是各种编程语言中遍地开花的,因此网站也提供了JS 和python 的绘图代码: 祝福这样的网站越来越好! 图越来越多!
vis_compare()可视化相同维度的两个数据帧之间的差异 vis_expect()可视化数据中满足某些条件成立的数据 vis_cor()在一个漂亮的热图中可视化变量的相关性 vis_guess...(5)为了便于绘制数据的相关性,请使用vis_cor函数: ?...当在超过1000行的数据上使用它时,请考虑这一点。...(7)绘制交互性图片 您可以通过将它们包装在plotly :: ggplotly中来制作visdat中的图: library(plotly) ggplotly(vis_dat(airquality))...ggplotly(vis_miss(airquality)) ggplotly(vis_guess(airquality))
NVD3 是一个旨在建立可复用的图表和组件的 d3.js 项目——它提供了同样强大的功能,但更容易使用。它可以让我们处理复杂的数据集来创建更高级的可视化。...在rCharts包中提供了nPlot函数来实现。 下面以眼睛和头发颜色的数据(HairEyeColor)为例说明nPlot绘图的基本原理。...recharts包 学习完rCharts包,可能有读者会问,我们有没有国人开发的包实现相似的效果呢?这边给大家推荐一个同样功能强大的recharts包。...如果你已熟悉ggplot2的绘图系统,也可以针对ggplot2绘制的对象p,利用ggplotly函数实现交互效果。...(gg <- ggplotly(p)) ? 其他 此外还有很多好玩有用的交互包。例如专门用来画交互时序图的dygraphs包,可通过install.packages(“dygraphs”)安装。
明确了解哪些类型方法适合大型系统很有帮助,它会在函数未得到此类参数时给出提醒。 ? 如果你有一个很棒的代码库,类型提示工具如 MyPy 可能成为集成流程中的一部分。...但是,你可以在运行时中使用 enforce 等工具强制进行类型检查,这可以帮助你调试代码(很多情况下类型提示不起作用)。 ?...函数注释的其他用处 如前所述,注释不会影响代码执行,而且会提供一些元信息,你可以随意使用。...Python 2 在此失败了,而 Python 3 可以如期工作(因为我在字符串中使用了俄文字母)。...不幸的是,这不仅仅是个人偏好的问题,因为在 SVC 中改变参数的顺序(adding/deleting)会使得代码无效。特别是,sklearn 经常会重排序或重命名大量的算法参数以提供一致的 API。
参考奥威尔的《我为什么要写作》,同时解释作者在小说中的风格选择」,便可以产生一个更加成熟和有说服力的输出结果。 可以说,好的提示不仅仅是具体的,而且还反映出了你想要让AI做什么的更深层的理解。...这些prompt都是我的小宝贝。」 Imagineer的提示写作过程是以设计、插图和摄影的知识为基础的。 当被问起为什么认为自己擅长写提示语时,Imagineer认为这是自然技能和策略的融合。...Imagineer表示,其中最关键的因素就是迭代,当你产生大量的图像,并改变一些词语或参数时,一个好的提示「会产生一致的、可预测的结果」。 而在提示工程中,对相关领域专业知识的掌握,也是必不可少的。...Dan Shipper是一位企业家兼作家,自从ChatGPT在11月发布以来,他一直在使用ChatGPT来辅助撰写博客文章,文章主题是人工智能工具的未来。...有时,提示写作本身就让人有一种特殊的喜悦。 Meg Conley是一位在业余时间使用AI工具的作家,她认为提示工程是一种挑战,类似于写作一篇有说服力的文章。 「提示工程非常困难,常常失败。」
我很喜欢去尝试使用一些新的工具,解决一些当下的问题,所以工具永远没有最好,只有最合适,最近一直在使用的 Obsidian 是在范冰的播客中知道的,通过范冰我还知道了另一个笔记工具,也就是今天的主角:Logseq...为什么使用 Logseq ,因为我在平时的工作中有一些这样的场景: 1、每天会有当天需要处理的一些事项; 2、临时会有一些重要不紧急的事项插入进来,暂时还没有 deadline ; 3、有些事情是能确定具体哪天再做...在 Logseq 中写作,没有压力,不用想在哪里写,也不用想写好的内容归类到什么目录,打开就在日志界面,只管写就可以,在做内容回顾时,可以使用双中括号来添加页面,或者用井号来添加 Tag ,这样就建立双向链接...点击引用的内容,会直接定位到具体的位置: 如果你之前使用过幕布或 Workflowy ,会觉得 Logseq 非常熟悉,因为 Logseq 也是大纲类的展示,这种展现形式写正式的文章不太适合,但针对我目前使用的一些场景就非常实用和方便了...以前,一直想使用 All in one 的工具,现在想法改变了,我觉得一个工具能专注做好一件事就已经很牛逼了,什么都想做,可能就什么都做不好,反而不能让用户喜欢。
仿佛是为了证明我的古板观点,我想改变我的终端和我的旧终端一样。在 Mac 上获得一个看起来和感觉像 Lucid Lynx 的设置并不简单,而且我很花了一些时间。...对于 Python 来说,virtualenv 会自动给提示符加前缀。Oh My Zsh 有如此多的插件,你一定能找到改善你生活的东西。 至于我的本地机?...我就直接用 PS1 格式,因为我喜欢这样的基本信息,而且 macOS 并没有真正让你给机器起个名字。 多行提示符也不错 观察力强的读者可能会注意到,十年来我的提示符有一个变化,就是现在它是两行。...我所做的是在我的提示符中的最后一个 $ 前加一个 $'\n',这样我的上下文信息 —— 当前机器、当前文件夹、当前 GitHub 分支、当前 virtualenv 等等 —— 都可以在一行中出现,然后我的命令就可以顺利输入了...使用适合你的方法 如果你喜欢某种风格或工具,那么你的这种偏好是绝对有效的。你可以尝试其他的东西,但千万不要认为你必须使用最新和最伟大的,只是为了像很酷的孩子一样。
不幸的是,类型提示功能还没办法强大到为 ndarrays/tensors 这种细粒度类型发出提示。或许,不久的将来我们就可以拥有这样全面的的类型提示工具,这将成为数据科学领域需要的强大功能。...从类型提示(运行前)到类型检查(运行时) 默认情况下,函数的注释对于代码的运行是没有影响的,它只是帮你指出每段代码所要做的工作。 在代码运行阶段,很多时候类型提示工具是不起作用的。...因为我在字符串中使用了俄文字母,对于 Python 2 是无法识别或编码这样的字符。 Python 3 中的 strs 是 Unicode 字符串,这对非英语文本的自然语言处理任务来说将更加地方便。...当设计数据流程时,参数的顺序至关重要。 以前,我们必须以这样繁琐的方式来编写: 注意到了吗?名称的唯一性也会被自动检查。...代码风格不仅是个人偏好的问题,还因为在 SVC 接口中改变参数顺序(adding/deleting)会使代码无效。
编码 下面这些都是我经历过的会导致难点bug的问题: 1.事件顺序。在处理事件时,提出下列问题会很有成效:事件可以以不同的顺序到达吗?如果我们没有接收到此事件会怎么样?如果此事件接连发生两次会怎么样?...在调试这类问题时,我们总是假定在空闲列表中的时候连接被设置为down(但当时为什么不把它放到列表外面呢?)。这是我们思考的不足,没有考虑到有时候事情会过早发生。 3.悄无声息的故障。...留下一个永远设置的标志可能会导致之后接连不断的bug。 6.改变假设。许多一开始最难预防的bug是因为改变了假设所造成的。例如,在开始时,可能每天只有一个客户事件。于是很多代码是在这样的假设下写下的。...例如,当我用VoIP SIP协议工作时,我写了一个能够用正是我想要的标题和值回复的小脚本。这个工具使得测试很多边界情况变得容易起来。另一个例子是可以进行API调用的一个命令行工具。...通过启动逐渐添加所需小功能,我得到了一些非常有用的工具。自己写工具的好处是,我得到的正是我想要的。 在测试中发现所有的bug,那绝对是不可能的。
为什么会这样?我们总是在做同样的事情。你知道的:pairplots,distplots,qqplots…你在可视化数据时使用图表是理解数据的唯一方法。这些都是非常有用、通用和默认的图表。...因此,在现实世界中,情况与我在学校从事学术数据科学项目时的情况完全不同:我从来不是项目的唯一参与者,我的同事和/或客户通常对我使用的数据不太了解。那我现在要为谁作图呢?听起来还没必要吗?很显然不是。...我发现在现实生活中,当涉及到绘图解释你的数据时,这些工具非常有用。...但有时,你会希望在同一行或列中抛出不同的图表,相互补充和/或显示不同的信息片段。 为此,这里给出一个非常基本但必不可少的工具:subplots。如何使用它?很简单。...10.在条形图中设置轴的顺序 最后是一个非常特殊的工具~如果你喜欢使用条形图,你可能会面临这样的问题:你的条形图没有按照你想要的顺序排列。
Stream 是用函数式编程方式在集合类上进行复杂操作的工具,其集成了Java 8中的众多新特性之一的聚合操作,开发者可以更容易地使用Lambda表达式,并且更方便地实现对集合的查找、遍历、过滤以及常见计算等...我们需要注意下面几点: Stream不会去存储对象,也不会改变数据源(产生一个新的流) Steam是延迟操作(在需要结果的时候才去执行) 一个 Stream 只可以使用一次,不能在多次使用。...对于顺序流和并行流,我是这样理解的:顺序流就是按照顺序来执行程序,它的速度肯定会比并行执行程序慢。...2.sorted(Comparator comp) 产生一个新流,其中按比较器顺序排序 这里我来说一下映射;map()方法也一样也会返回一个新流,我们把返回的新流称为映射流,我们提供的映射函数会处理原始流中的每一个元素...ID等于3的那条数据,在我们输出list的时候,我们发现list的数据并没有收到改变,这也验证来上面说的,不会改变数据源。
为什么会这样?我们总是在做同样的事情。你知道的:pairplots,distplots,qqplots…你在可视化数据时使用图表是理解数据的唯一方法。这些都是非常有用、通用和默认的图表。...我是我项目的唯一参与者,我的教授们在他们给我这些数据时就已经知道关于数据的一切。那我作图是为了给谁看?我自己?好吧…没必要!对不?我比任何人都清楚每一步在实现什么,我不需要向任何人解释。...在这篇文章的剩余部分,我想和大家分享 10 个基本的中级和高级的绘图工具。我发现在现实生活中,当涉及到绘图解释你的数据时,这些工具非常有用。...但有时,你会希望在同一行或列中抛出不同的图表,相互补充和/或显示不同的信息片段。 为此,这里给出一个非常基本但必不可少的工具:subplots。如何使用它?很简单。...在条形图中设置轴的顺序 最后是一个非常特殊的工具~如果你喜欢使用条形图,你可能会面临这样的问题:你的条形图没有按照你想要的顺序排列。
下面是我总结的最重要的经验教训,包括编码,测试和调试三个方面。 ? 编码 下面这些都是我经历过的会导致难点bug的问题: 1.事件顺序。...在处理事件时,提出下列问题会很有成效:事件可以以不同的顺序到达吗?如果我们没有接收到此事件会怎么样?如果此事件接连发生两次会怎么样?...在调试这类问题时,我们总是假定在空闲列表中的时候连接被设置为down(但当时为什么不把它放到列表外面呢?)。这是我们思考的不足,没有考虑到有时候事情会过早发生。 3.悄无声息的故障。...留下一个永远设置的标志可能会导致之后接连不断的bug。 6.改变假设。许多一开始最难预防的bug是因为改变了假设所造成的。例如,在开始时,可能每天只有一个客户事件。于是很多代码是在这样的假设下写下的。...通过启动逐渐添加所需小功能,我得到了一些非常有用的工具。自己写工具的好处是,我得到的正是我想要的。 在测试中发现所有的bug,那绝对是不可能的。
领取专属 10元无门槛券
手把手带您无忧上云