期间也搞了一些线下的活动来分享协程的用法和作用,在 1.1 正式发布不久之后又写了一篇介绍协程的使用场景的文章深入理解 Kotlin Coroutine(三)。...其中,使用 VSCode 处理文字内容;使用 Pandoc 将 md 文件编译成 docx 文件;使用后面的四个工具来绘制插图 —— 它们实际上是将源码编译成图片的处理工具。 ?...除了使用 Haskell 编写的 Pandoc 的插件 cross-ref 我实在无法快速上手以外,我学习到了如何使用 Python 和 Lua 编写用来在编译过程中处理图片生成逻辑和文字预处理的 Pandoc...过滤器,以及如何通过修改源码解决 plantUML、mermaid.js、rx-marbles 的样式定制和字体的支持的问题,最后还借机学会了如何制作 docker 镜像。...当然,除了有意思之外,在写作的过程中我也确实无数次感觉到了对文字细节的疲惫,但一次次的修改和校对之后又觉得非常值得。
搜索关键词:pdf 转 word 使用 Pandoc 将 Tex 源文件转化为 Word 格式 该教程来源于CSDN[1],小编根据该教程在 mac 中进行学习和实践。...pandoc psalt.tex -o output.docx -w docx \ --reference-doc template.docx \ --filter pandoc-crossref...:用于交叉引用(公式、引文)的过滤器 【可选】,下载地址:GitHub[3],必须找到与已安装 pandoc 版本对应的可执行文件,下载后放在运行此命令的同一目录下(对于 Windows 和 macOS...Word 文件预览 通过这种方法得到的图形和公式基本不需要再处理了~ 注意:如果有对应期刊的参考模板 Docs 文件,效果会更好些。Windows 的处理方式类似,读者可以自行转化。...之后会整理如何使用英语汇报自己的学术成果,汇报模板等内容。 可能很多读者是通过 R 语言关注我的,但是最近发的内容主要是平常科研存在的小技巧和科研者成长的相关内容。
,这些插件(使用 lua 编写)在API请求响应循环的生命周期中被执行。...Criteria : 过滤器执行的条件 Action : 如果条件满足,过滤器执行的动作 Zuul提供了一个动态读取、编译和运行这些过滤器的框架。...Zuul2和Zuul1在架构方面的主要区别在于,Zuul2运行在异步非阻塞的框架上,比如Netty。...如果你非要阻塞,可以在一个异步过滤器中这样做,并且在一个单独的线程池上运行,否则可以使用同步过滤器; 上文提到过Zuul2开始采用了异步模型: 优势是异步非阻塞模式启动的线程很少,基本上一个...简单说明一下上文中的三个术语: Filter(过滤器) 和Zuul的过滤器在概念上类似,可以使用它拦截和修改请求,并且对上游的响应,进行二次处理。
它实际上是一个很长的二进制向量和一系列随机映射函数。 布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。...有的,我们接着往下看 Bloom Filter的缺点 bloom filter之所以能做到在时间和空间上的效率比较高,是因为牺牲了判断的准确率、删除的便利性 存在误判,可能要查到的元素并没有在容器中,...但是hash之后得到的k个位置上值都是1。...手动Bloom Filter 实现 我们上面已经说了布隆过滤器的原理,知道了布隆过滤器的原理之后就可以自己手动实现一个了。...capacity: 过滤器的容量。当实际存储的元素个数超过这个值之后,性能将开始下降。实际的降级将取决于超出限制的程度。随着过滤器元素数量呈指数增长,性能将线性下降。
,这些插件(使用 lua 编写)在API请求响应循环的生命周期中被执行。...,过滤器执行的动作 Zuul提供了一个动态读取、编译和运行这些过滤器的框架。...Zuul2和Zuul1在架构方面的主要区别在于,Zuul2运行在异步非阻塞的框架上,比如Netty。Zuul1依赖多线程来支持吞吐量的增长,而Zuul 2使用的Netty框架依赖事件循环和回调函数。...因为Zuul是运行在一个事件循环之上的,因此从来不要在过滤中阻塞。如果你非要阻塞,可以在一个异步过滤器中这样做,并且在一个单独的线程池上运行,否则可以使用同步过滤器。...简单说明一下上文中的三个术语: Filter(过滤器) 和Zuul的过滤器在概念上类似,可以使用它拦截和修改请求,并且对上游的响应,进行二次处理。
完全静态 在完全静态配置中,实现者提供了一组侦听器(和过滤器链),集群以及可选的HTTP路由配置。动态主机发现只能通过基于DNS的服务发现来实现。配置重新加载必须通过内置的热启动机制进行。...在静态配置的基础上,SDS允许Envoy部署避开DNS的限制(响应中的最大记录等),并消耗更多用于负载平衡和路由的信息(例如,金丝雀状态,区域等)。...SDS / EDS,CDS,RDS和LDS 侦听器发现服务(LDS)在Envoy可以在运行时发现整个侦听器的机制上分层。这包括所有的过滤器堆栈,直到并包含嵌入式参考RDS的HTTP过滤器。...在所有先前的步骤发生之后,听众开始接受新的连接。该流程确保在热启动期间,新流程完全能够在旧流程开始排放之前接受并处理新的连接。 排水 排水是Envoy试图优雅地脱离各种事件的连接的过程。...脚本 Envoy支持实验性的Lua脚本作为专用HTTP过滤器的一部分。
Pandoc filter Better BibTeX 的作者写了一个 lua 脚本zotero.lua,用来实现从 Markdown 到 Word 实时引用的格式转换。...我们可以在 Markdown 文本中写入相关元数据,或者在 pandoc 命令行中进行相关参数设置。...如果是 Zotero 个人 library , 没有什么特殊情况使用默认参数即可,直接运行如下命令: pandoc input.md -s --lua-filter=zotero.lua -o output.docx...选择「没有输入」和位于「任何应用程序」,然后在左侧选择「运行 AppleScript」,在右侧弹出的编辑器中复制 zotpick-pandoc.applescript的代码即可。...5 效果 接下来展示一下 Markdown 源文档示例,和转换成 word 文档之后的样子。 ? ?
服务网格解决了在大型分布式系统中与可观察性和网络相关的诸多操作问题,而它的可扩展性正好能应用在多种使用场景上。...一旦所有服务流量都必须通过 Envoy 网格,要一致地控制和观察你的网络中的情况就变得十分简单。开发者可以随心选择适用的语言和技术,快速并持续地提供服务,重新聚焦在应用的业务逻辑上。...HTTP L7 路由和过滤器架构︰在 HTTP 模式中,Envoy 支持路由子系统,它能够按照路径、权限、内容种类、运行时值和其他参数来路由和重定向请求。在服务网格的领域里,这是一个特别强大的工具。...其他扩展方法 Lua 过滤器现在只在 HTTP 上运作。你可以在 Envoy config 配置中编写和嵌入 Lua 脚本,然后 Lua 过滤器就会允许你进行 header 和数据修改。...WebAssembly 同时也在另一个 WASM 仓库 [5] 上运行。
完全解耦控制逻辑和业务逻辑。 旨在实现高可用性和 >99.9% 的正常运行时间 SLA。 并且有四个关键性的东西要很好地通过云原生方式构建并被调度 基础设施运行时资源。...在一开始的时候,我们主要是使用Nginx + Lua的方式,但在解决用户问题的过程中发现,对于一个流量调度网关,有两个非常重要的特点是我们无法避开的。 流量调度和编排,而不是一个反向代理。...可以通过管理 API 在运行时运态地将功能或过滤器组织到Pipeline中。 可以很自由的扩展和注入用户的自定义和业务逻辑代码。 有两种类型的控制器有助于管理和集成到整个云原生架构。...过滤器或控制器。按照开发指南,您可以使用 Go 语言开发过滤器和控制器。但是这需要重新编译软件。 WebAssembly。...Easegress 支持 WASM 运行时引擎,因此,您可以使用任何支持 WASM 的编程语言开发过滤器,并且 Easegress 可以在运行时加载它。 函数即服务FaaS。
图3-5 环形缓冲器的使用 3.5 保存显示过滤器 单击菜单栏上的“分析”→“显示过滤器” 图3-11 Wireshark中的显示过滤器 单击这个对话窗口左下方的“+”按钮,在左侧“新建显示过滤器”中输入过滤器的名称...(例如baidu),在右侧输入“显示过滤器”的内容,我这里输入的是ip.addr==www.baidu.com(见图3-12),完成之后单击OK按钮。...图3-13 在Wireshark中的添加一个显示过滤器 7.2 观察远程访问HTTP的过程 步骤 描述 详细过程 1 判断服务器是否在同一局域网 操作系统将自己的IP地址和子网掩码用二进制表示并进行与运算...图16-1 Wireshark中的Lua版本 TShark -v来查看。如图16-2所示,我们可以看到这个Tshark和Wireshark一样都支持Lua5.2.4。...,这里使用-s参数来表示只捕获数据包的前512个字节数据: tshark -s 512 -i 4 和Wireshark一样,Tshark还支持捕获过滤器和显示过滤器的使用,这两种过滤器的语法也和Wireshark
,这些插件(使用 lua 编写)在API请求响应循环的生命周期中被执行。...Zuul提供了一个动态读取、编译和运行这些过滤器的框架。...Zuul2和Zuul1在架构方面的主要区别在于,Zuul2运行在异步非阻塞的框架上,比如Netty。Zuul1依赖多线程来支持吞吐量的增长,而Zuul 2使用的Netty框架依赖事件循环和回调函数。...因为Zuul是运行在一个事件循环之上的,因此从来不要在过滤中阻塞。如果你非要阻塞,可以在一个异步过滤器中这样做,并且在一个单独的线程池上运行,否则可以使用同步过滤器。...简单说明一下上文中的三个术语: Filter (过滤器) 和Zuul的过滤器在概念上类似,可以使用它拦截和修改请求,并且对上游的响应,进行二次处理。
引言上一回说道, Markdown可以使用一些高级用法进一步提升文档的质量和可读性,以完成高要求的复杂文本写作如论文等。那么, 为什么我们需要用Markdown来写论文呢?...一旦输入时没有规范好,写完之后掉过头来修改都会让难度指数式上升。而输入和排版同时进行加大了文件的复杂度,在保存耗时增加的同时使程序易于崩溃,而且在崩溃之后往往无法修复,版本控制也因此变得一团糟。...--lua-filter .....为/path/to/pandoc.exe --lua-filter .....在powershell 或 cmd 中输入, 其中/path/to/pandoc.exe代表pandoc的位置.# sandy @ sandys-Mac-mini in ~/Downloads [15:
前言 最近在CSDN上看到了一篇博客,Redis缓存击穿、雪崩、穿透!(超详细),详细讲述了缓存穿透、缓存击穿和缓存雪崩是什么。对我这个刚刚入门的人来说,看完之后非常震撼。...但是这篇博客没有给出具体的实现,并且在浏览大部分博客之后,发现大家在实现的过程中,并不能像这篇博客一样考虑的这么周全。...实现 加锁+设置过期时间+Lua脚本 这里我们要加锁和设置过期时间看作一条指令,可以使用Lua脚本。Lua脚本可以保证多条指令作为一个整体执行,从而避免了加锁但没有设置过期时间这样的问题。...; }).start(); } } 然后在获取锁之后,直接启动该线程,这里我们设置的等待时间相比于过期时间较短一些,是因为加锁和开启线程之间就有延迟,并且还有可能到时间并没有给延时线程分配时间片...但是有一个问题,hash表会出现碰撞现象,也就是说,不存在的值在映射之后可能和存在的值放在一个位置。但是我们不能像HashMap那样做一个拉链,因为bit只能存储是否存在,并不能存储其他关系了。
,这些插件(使用 lua 编写)在API请求响应循环的生命周期中被执行。...Zuul提供了一个动态读取、编译和运行这些过滤器的框架。...Zuul2和Zuul1在架构方面的主要区别在于,Zuul2运行在异步非阻塞的框架上,比如Netty。Zuul1依赖多线程来支持吞吐量的增长,而Zuul 2使用的Netty框架依赖事件循环和回调函数。...因为Zuul是运行在一个事件循环之上的,因此从来不要在过滤中阻塞。如果你非要阻塞,可以在一个异步过滤器中这样做,并且在一个单独的线程池上运行,否则可以使用同步过滤器。...简单说明一下上文中的三个术语: Filter(过滤器) 和Zuul的过滤器在概念上类似,可以使用它拦截和修改请求,并且对上游的响应,进行二次处理。
理解Redis对Lua脚本的操作 1.介绍 1)Redis在2.6推出了脚本功能,允许开发者使用Lua语言编写脚本传到Redis中执行。...脚本程序,它会被运行在Redis服务器上下文中,这段脚本不必定义为一个Lua函数。...,可以在Lua中通过全局变量ARGV数组访问,访问的形式和KEYS变量类似( ARGV[1] 、 ARGV[2] ,诸如此类)。 ...,如果要删除得重新初始化数据。 ...在项目上线前, 演练缓存层宕掉后, 应用以及后端的负载情况以及可能出现的问题, 在此基础上做一些预案设定。
前言 布隆过滤器作为一个精巧且实用的数据结构,对于后端程序员来讲,学习和理解布隆过滤器有很大的必要性。希望通过这篇文章让更多人了解布隆过滤器的原理,并且会实际去使用它! 什么是布隆过滤器?...(判断一个邮件地址是否在垃圾邮件列表中)、黑名单功能(判断一个IP地址或手机号码是否在黑名单中)等等。...当我们需要判断一个元素是否存在于布隆过滤器的时候,会进行如下操作: 对给定元素再次进行相同的哈希计算; 得到值之后判断位数组中的每个元素是否都为 1,如果值都为 1,那么说明这个值在布隆过滤器中,如果存在一个值不为...如果我们需要判断某个字符串是否在布隆过滤器中时,只需要对给定字符串再次进行相同的哈希计算,得到值之后判断位数组中的每个元素是否都为 1,如果值都为 1,那么说明这个值在布隆过滤器中,如果存在一个值不为...(lua 脚本实现):https://github.com/erikdubbelboer/redis-lua-scaling-bloom-filter pyreBloom(Python 中的快速 Redis
基于 lua 编写 istio 扩展包 我们知道 istio 支持 lua 和 wasm 两种扩展能力,lua 作为脚本语言,相信写过游戏或 nginx 插件的都了解他,这里以 Lua 为例子,介绍下...脚本在filter链上拦截处理处理连接请求 - applyTo: HTTP_FILTER match: context: SIDECAR_INBOUND #"ANY", "SIDECAR_INBOUND...Lua Filter 说明 Lua 脚本方法说明: envoy_on_request 函数在请求路径上被调用, envoy_on_response 脚本则在响应路径上被调用。...只要它们还没有被发送到头链中的下一个过滤器,就可以被修改。例如,它们可以在一个 httpCall() 或者 body() 调用返回后被修改。如果头在任何其他情况下被修改,脚本将失败。...元数据需要在过滤器名下指定,例如envoy.lua。
微服务应用API治理与安全防护 在微服务环境下,存在着大量的服务之间的调用。这时,内部服务的API调用的安全风险就不得不考虑进去。同时,在云原生环境中,内外网边界逐渐模糊,更多的API会暴露在云上。...Service Mesh 在微服务的基础上加上了一个网络代理,所有的流量都在Sidecar上完成,Sidecar完成服务发现,负载均衡,智能路由,故障注入,熔断等动能,从而微服务只需要注重业务实现。...Istio官方[3]对Istio的架构描述如下图3: Istio在逻辑上分为数据平面和控制平面,控制平面主要实现微服务管理需要的服务发现的功能,数据平面的Envoy以Sidecar的模式提供负载均衡的功能...5.1内置过滤器 通过内置过滤器,我们可以在不编写代码的前提下,只需要通过配置项,就可以对流经Envoy的API请求进行防护。...通过Envoy提供的lua或者wasm的过滤器。我们可以直接编写lua代码,或者将C++、resty代码编译成WebAssembly代码,实现自定义的过滤器。
WASM 字节码和机器码非常接近,因此可以非常快速的装载运行。...HTTP 过滤器 HTTP 过滤器在 L7 上运行,由网络过滤器(即 HTTP 连接管理器,HTTP Connection Manager)创建。...采用该规范的好处在于能让 Wasm 扩展程序在不同的网络代理产品上运行,比如 MOSN 的 Wasm 扩展程序可以运行在 Envoy 上,而 Envoy 的 Wasm 扩展程序也可以运行在 MOSN 上...AUTHZ:在 Istio 身份验证过滤器之后以及所有一级授权过滤器之前,即应用于 AuthorizationPolicy 资源之前。...STATS:在所有授权过滤器之后,以及 Istio 统计过滤器之前。 UNSPECIFIED_PHASE:让控制平面决定注入的位置,通常位于过滤器链的末端,也就是在路由之前。
领取专属 10元无门槛券
手把手带您无忧上云