Typora与PicGo的使用笔记
一、TyporaTypora是一款极简的Markdown写作编辑器,相比于传统的双栏目预览式编辑,Typora巧妙的实现了一种所见即所得的编辑模式,关于这款工具的详细的介绍,以及它与其他工具的对比,在网上到处都是,这里就不赘述了。我只简单的描述以下我对这个编辑的印象与评价。 优点: 风格极简,支持几种主流的主题风格,同时支持主题自定义; 所见即所得的创新的写作风格体验; 支持文档导出为多种格式,PDF,HTML,Word等; 支持LaTex公式; 待改进: 文档列表新建文件的按钮有时候会无响应,点击多次才能新建文件; 图片插入目前只支持iPic这款付费插件,诸如PicGo还不支持; 二、PicGoPicGo是一款开源的图床软件,该软件与iPic的不分伯仲,目前支持众多图床(SM.MS图床,腾讯云COS,微博图床,GitHub图床,七牛图床,Imgur图床,阿里云OSS,又拍云图床等),这里简单表述一下我的个人使用体验。 优点: 项目开源,文档支持中文,比较齐全; 支持插件,用户可根据自己需要自定义插件; 三、结合使用由于公司内部使用GitLab,在记录一下is...
sar指令的使用与源码解析 - 每周指令
sar 的全称是 System Activity Reporter(系统活动情况报告)的缩写。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据;取样数据分析的结果都可以存入文件, 所需的负载很小。sar是目前 Linux 上最为全面的系统性能分析工具之一,可以从 14 个大方面对系统的活动进行报告,包括文件的读写情况、系统调用的使用情况、串口、CPU 效率、内存使用状况、进程活动及IPC有关的活动等,使用也是较为复杂。 一、简介sar是查看操作系统报告指标的各种工具中,最为普遍和方便的;它有两种用法; 追溯过去的统计数据(默认) 周期性的查看当前数据 sar只是sysstat(最新版本为v12.1.6)软件包中的一个工具,sar相关的工具还包括sadc、sa1、sa2: sadc:系统动态数据收集工具,收集的数据被写入一个二进制文件中,它是sar工具后端; sa1:将每日的系统活动信息以二进制数据的形式写入到文件中,由cron调用,默认的cron作业位于/etc/cron.d/syssta...
Hexo的多种Markdown渲染器对比分析
Hexo 作为一个优秀的 Markdown 博客框架,自然也诞生了很多适用的 Markdown 渲染器,这里对比分析一下 Hexo 下几种常用的 Markdown 渲染器: hexo-renderer-marked , hexo-renderer-kramed , hexo-renderer-pandoc , hexo-renderer-markdown-it , hexo-renderer-markdown-it-plus ,本文使用的渲染器为: hexo-renderer-markdown-it-plus 。 一、详细介绍1.1、hexo-renderer-markedHexo默认的Markdown的渲染器,针对于普通的Markdown的文章书写,该渲染器已经足够,但是由于不支持Mathjax,不支持插件扩展,不支持emoji表情,所以该渲染器也是介绍的渲染器中功能最弱的。 GitHub地址:hexojs/hexo-renderer-marked NPM地址:hexo-renderer-marked 版本:2.0.0 最近提交:a month ago 依赖:h...
Markdown中支持LaTex数学公式
一、引言Markdown在目前无疑是一个比较好的写作方式,但是它时候和大部分的写作软件一样,在一些数据公式的编写上,只能引入图片呢?除了引用图片之外是不是还有更好的数学公式编辑手段呢?这里主要介绍一下LaTex Math在Markdown上的支持。 本博客目前采用hexo-renderer-kramed渲染器替换了Hexo自带的hexo-renderer-marked渲染器来支持LaTex; LaTex介绍LaTex是一种基于TeX的排版系统,LaTeX使用TeX作为它的格式化引擎,LaTeX遵循呈现与内容分离的设计理念,以便作者可以专注于他们正在编写的内容,而不必同时注视其外观。在准备LaTeX文档时,作者使用章(chapter)、节(section)、表(table)、图(figure)等简单的概念指定文档的逻辑结构,并让LaTeX系统负责这些结构的格式和布局。因此,它鼓励从内容中分离布局,同时仍然允许在需要时进行手动排版调整。这个概念类似于许多文字处理器允许全局定义整个文档的样式的机制,或使用层叠样式表来规定HTML的样式。LaTeX系统是一种可以处理排版和渲染的标记语言。...
Charles工具的介绍与使用
Charles 是 MacOS 上十分好用的一款抓包工具,它不仅可以抓取明文数据包,也可以在手机端安装相关 SSL 证书后抓取加密的数据包,对于分析手机端应用的交互行为十分有帮助,本文中使用的版本为 4.2.8,这里记录一下如何使用 Charles 在 MacOS 下对于安卓手机进行抓包。 一、环境配置与要求 环境与软件:自行安装,不做介绍 环境: Charles 本身依赖于 Java 环境,因此需要确保 MacOS 本身已经安装配置完成 Java 的环境; 软件: MacOS 端安装成功 Charles ,并且配置完成所需要抓取的网址信息; 设备关联:手机和 Mac 处于同一个局域网中,并且将指定的代理服务器配置为 Charles 实际所监听的 IP 和端口; 证书安装:手机安装完成 Charles SSL CA 证书,证书的获取方式下文会详细介绍(仅用于抓取 HTTPs 的数据包); 抓包分析:开始抓包分析即可; 二、MacOS 端软件配置 安装 Charles HTTPS 证书 :依次点击 Help ,SSL Proxying ,Install Charles Roo...
为什么RedisCluster采用16384个槽位?
一、引言RedisCluster目前使用的计算slot槽位的算法为CRC16,该算法本身会产生的hash值的大小为16bit,因此该算法可以产生2^16=65536个不同的值,取值范围为0~65535之间,从下面的代码中我们看到,目前限制的slot槽位的个数为16384(相关的代码为crc16(key+s+1,e-s-1) & 0x3FFF); /* We have 16384 hash slots. The hash slot of a given key is obtained * as the least significant 14 bits of the crc16 of the key. * * However if the key contains the {...} pattern, only the part between * { and } is hashed. This may be useful in the future to force certain * keys to be in the same ...
Redis的多线程特性
Redis6.0即将发布,比较吸引我的便是Redis6.0支持的多线程技术,Redis本身也并不是简单的单进程/线程模型,包括bgsave的进程以及对于一些慢请求的io线程(惰性删除,日志刷盘等),这次多线程的优化主要解决了Redis单进程/线程处理模型在协议解析以及网络IO上的消耗问题,在命令的处理上仍旧是单线程。 一、逻辑分析2.1、两个配置 io-threads:启用的IO的线程数,最大为128(老版本中配置判断为512,新版本已经修复统一为128); io-threads-do-reads:是否启用IO多线程; 2.2、两个队列 clients_pending_read:待处理的客户端的请求数据队列(需要进行协议解析等操作); clients_pending_write:待处理的客户端的回复数据队列(需要进行回复客户端等操作); 2.3、两类线程注意:启用的所有的多线程在同一时刻执行的任务类型是一样的 IO_THREADS_OP_WRITE:执行clients_pending_read任务的线程; IO_THREADS_OP_READ:执行cli...
使用FPM优雅的进行rpm打包
一、介绍对于有过构建rpm安装包相关操作的应该知道可以使用spec文件以及rpmbuild指令进行打包操作,不过spec文件的编写也是一个十分令人头懂的事情,我之前曾经有过一篇使用spec文件打包的文章,参考RPM打包记录,这里介绍一个更高效,更人性化的打包工具:FPM。 FPM是一个快速高效的打包工具,该工具本身为Ruby的一个模块,因此使用该工具之前需要安装Ruby; 二、安装与使用2.1、安装# 安装rubyyum -y install ruby rubygems ruby-devel# 替换国内的ruby镜像gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/# 验证镜像是否替换成功gem sources -l# 安装fpmgem install fpm 2.2、参数介绍-f :强制覆盖[覆盖同名rpm包]-n :指定的rpm包名-p :指定的rpm包文件放置位置,最后将rpm存放在该路径下;-v :指定的rpm包版本-d :指定依赖的软件 ( [-d '...
BloomFilter 和 CuckooFilter 对比解析
BloomFilter 和 CuckooFilter 都是一种用于数据存在性判断的数据结构。布隆过滤器早在 1970 年就被提出,它由一个二进制向量数组和一系列随机映射函数组成。它可以用于检索一个元素是否一定不在集合中或者可能存在集合中。布谷鸟过滤器的提出相对较晚,它创新性的提出了可以删除的实现方式,解决了布隆过滤器无法删除数据的痛点。这两者各有优劣,需要结合具体的使用姿势来进行选择。 一、BloomFilterBloom Filter(布隆过滤器)是1970年由布隆提出的,它由一个二进制向量数组和一系列随机映射函数组成。它可以用于检索一个元素是否一定不在集合中或者可能存在集合中。 《Space/Time Trade-offs in Hash Coding with Allowable Errors》 1.1、实现原理 初始化内存区域:在内存中开辟一块储存空间,并将里面的比特位全部初始化为0; 设置k个hash函数:初始化k个hash函数,用于元素的数据映射; 比特位映射:通过k个hash函数,将元素映射到存储空间对应的比特位,并将对应的比特位设置为1; 1.2...
记一次nf_conntrack模块导致的丢包问题
一、背景我们灰度线上业务的时候,有一次遇到了业务反馈资源没有读写,当时正好将流量切到了线上的一台机器上,在将业务的资源迁移回滚之后,经过一番查找,发现/var/log/message中打印了很多关于kernel: nf_conntrack: table full, dropping packet的错误信息,网上查找了一下,这个错误主要是由于启用了nf_conntrack模块,之前很多人都遇到了这个问题,解决方案也很多,这里以我的角度详细记录一下,/var/log/message中错误信息如下: Jul 30 11:50:01 dbl14192 systemd: Starting Session 486429 of user root.Jul 30 11:50:02 dbl14192 kernel: nf_conntrack: table full, dropping packetJul 30 11:50:02 dbl14192 kernel: nf_conntrack: table full, dropping packetJul 30 11:50:02 dbl14192 ker...

