Relative Content

K4NZDROID

category

「Graphviz」- 绘制表格

问题描述
我们经常需要绘制网络报文、内存数据结构等等的示意图。这些示意图,多半是种“表格“结构:

我们需要使用标记语言绘制这种表格(比如,在 Zim 中(总之我们有这种需求))。
该笔记将记录:如何使用 Graphviz 绘制表格,以及整理相关文档。
解决方法
我们这里以绘制在 x86 Protected Mode 下的 GDT 段描述符为例。
如下为绘制”GDT 段描述符表格“的 DOT 代码:

digraph G {

graph [pad=”0.5″, nodesep=”0.5″, ranksep=”2″, fontsize=10];
node [shape=plain, fontsize=10,
fontname=”Microsoft YaHei”];

Foo [label=<
<table border=”0″ cellborder=”1″ cellspacing=”0″ cellpadding=”2″>
<tr>
<td colspan=”0″ width=”10″ >00</td>
<td colspan=”0″>01</td>
<td colspan=”0″>02</td>
<td colspan=”0″>03</td>
<td colspan=”0″>04</td>
<td colspan=”0″>05</td>
<td colspan=”0″>06</td>
<td colspan=”0″>07</td>
<td colspan=”0″>08</td>
<td colspan=”0″>09</td>
<td colspan=”0″>10</td>
<td colspan=”0″>11</td>
<td colspan=”0″>12</td>[……]

READ MORE

「LibreOffice Draw」- 绘制网络拓扑图

问题描述
该笔记将记录:在 Linux 中,如何使用 LibreOffice Draw 绘制网路拓扑图,以及相关问题的解决方案。
解决方案
#1 安装 LibreOffice Draw 软件
安装这里就不再介绍。
可以到官网下载,或者从发行版的源中安装(APT, YUM…),或者自己编译。
#2 下载网络拓扑图标
到CISCO下载图标
注意:仅下载JPG文件,并将ZIP文件解压缩到文件夹中。
#3 启动LibreOffice Draw
– 点击「Tools」菜单,选择「Gallery」项,在出现的控件中点击「New Theme」按钮;
– 在「General」选项卡上,输入此图标集合的名称,例如“My Cisco Icons”。
– 在「Files」选项卡上,使用「Find Files…」按钮找到之前解压的图标目录,单击「Select」选择包含图标的目录,然后单击「Add All」以添加所有图标。
– 之后,在之前出现的「Gallery」中就会出现一个“My Cisco Icons”项,点击后就可以看到刚才添加的图标。拖动使用即可。

#4 安装更多的图标
从VRT Systems下载更多图标,向下滚动到页面末尾并下载最新文件。截至今天,请参阅下面的最新图标集文件:
– 点击「Tools」 >> 「Extension Manager」 >> 「Add」 >> 找到下载的.oxt文件。
– 重启LibreOffice Draw后,打开Gallery就可以看到新添加的图标:
注意事项
由于 LibreOffice 版本的不同,有些选项或者菜单的位置也相同。写该文章的时候,我使用的 LibreOffice 的版本为6.1.0.3,某些地方就和作者说的有所出入。
参考文献
How to draw a network diagram with Libre Office draw[……]

READ MORE

「Mermaid」- 安装与升级

Mermaid Cli on Debian
mermaid-js/mermaid-cli: Command line tool for the Mermaid library
我们安装 mermaid-cli 版本,用于与 Zim 集成:

// NPM 环境信息

# nvm ls
-> v13.14.0
default -> v13.14.0
node -> stable (-> v13.14.0) (default)
stable -> 13.14 (-> v13.14.0) (default)
iojs -> N/A (default)
unstable -> N/A (default)
lts/* -> lts/erbium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.22.1 (-> N/A)
lts/erbium -> v12.19.0 (-> N/A)

// 执行安装命令

# npm install @mermaid-js/mermaid-cli[……]

READ MORE

「Mermaid」- 快速开始(学习笔记)

问题描述
Mermaid,基于 JavaScript 的绘图工具,通过文本定义图解内容,即:我们只需要编写“代码”来描述图解,而图解的创建、布局、渲染等等由工具完成。下面是通过 Mermaid 绘制的图解(复制于官方的 README.md 文件,还有很多其他样式):
| |
学习 Mermaid 的原因是:GitLab 支持渲染在 Markdown 中的 Mermaid 代码,因此我们可以通过 Mermaid 在 REAME.md 中插入图解,方便修改(相比原始的插入固定的图片的方式),因此我们才学习 Mermaid 的使用方法。(当然,除了 Mermaid 之外,GitLab 还支持 PlantUML,但是需要额外配置。既然都是学习“这种新知识”,使用哪个又有什么区别呢?我们认为 Mermaid 被默认启用,也是被官方认同的,所以就学习 Mermaid 使用方法)
该笔记将记录:Mermaid 的学习笔记,记录相关资源,整理常见问题及其处理方法。
学习资料
对于入门学习,可以参考如下文档: 1)mermaid/README.md at develop · mermaid-js/mermaid 2)Flowcharts – Basic Syntax
对于深入学习,可以参考 mermaid – Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs. 文档;
编辑工具
使用 Mermaid live editor 可以在线编辑与在线预览。
注释符号
双百分号(%%)
其他问题
如何设置图片大小?
Generated PDF width/height · Issue #35 · mermaidjs/mermaid.cli
只能通过 CSS 或者 命令行参数的形式指定图片大小,也就是说无法在语言中定义图片大小。
参考文献
How do I do comments? · Issue #47 · mermaid-js/mermaid Error: Failed to launch Chrome · Issue #39 · mermaidjs/mermaid.cli[……]

READ MORE

「Mermaid」- 常见问题处理

Running as root without –no-sandbox is not supported
mermaid-cli/linux-sandbox-issue.md at master · mermaid-js/mermaid-cli Solve “The SUID sandbox helper binary was found, but is not configured correctly.” (3 solutions!) | by Authmane Terki | Medium
问题描述
当运行 mmdc 命令时,产生如下错误:

# mmdc -i demo.mmd -o demo.png
/usr/lib/node_modules/@mermaid-js/mermaid-cli/node_modules/puppeteer/lib/cjs/pup
peteer/node/BrowserRunner.js:193
reject(new Error([
^

Error: Failed to launch the browser process!
[1223/191612.455014:FATAL:zygote_host_impl_linux.cc(117)] No usable sandbox! Upd
ate your kernel or see https://chromium.googlesource.com/chromium/src/+/master/d
ocs/linux/suid_sandbox_development.md for more information on developing with th
e SUID sandbox. If you want to live dangerously and need an immediate workaround
, you can try using –no-sandbox.
#0 0x56445399fb39 base::debug::CollectStackTrace()
#1 0x5644539124c3 base::debug::StackTrace::StackTrace()
#2 0x564453922c80 logging::LogMessage::~LogMessage()

原因分析
因为没有什么研究,所以原因我们也并不清楚(这各问题可是经常出现的)。
解决方法
第一步、创建 puppeteer-config.json 文件:

{
“args”: [“–no-sandbox”]
}

第二步、使用该[……]

READ MORE

「Microsoft Visio」- 提取 .vss 文件内的全部图标(Linux)

问题描述
.vss,是 Microsoft Office Visio 2003 工具生成的绘图模板文件,如果保存为绘图是绘图文件,如果为模板就是这种 .vss 文件。
我们下载网元图标文件是 .vss 格式,里面包含各种图标。但我们是 Linux 桌面系统,无法使用 Visio 工具,因此需要提取其中的图标。
该笔记将记录:在 Linux 中,如何使用工具提取 .vss 文件中的全部图标,以及相关问题的处理方法。
解决方案
在 Linux 中,如何需要提取 .vss 文件的图标,使用 kakwa/libvisio2svg 工具。
在 Ubuntu 21.04 中,搜索无果,只能自行编译安装:

# vss2svg-conv

# apt-file search -x bin/vss2svg-conv

# apt-file search -x bin/vss
burp: /usr/bin/vss_strip
libvisio-tools: /usr/bin/vss2raw
libvisio-tools: /usr/bin/vss2text
libvisio-tools: /usr/bin/vss2xhtml

第一步、安装依赖

apt-get install -y librevenge-dev libvisio-dev libwmf-dev libxml2-dev
apt-get install -y gsfonts

# 安装 libemf2svg 类库(仓库未提供,只能自行编译安装)

apt-get install -y gcc g++ cmake
apt-get install -y libpng-dev libc6-dev libfontconfig1-dev libfreetype6-dev

git clone https://github.com/kakwa/libemf2svg.git
git checkout tags/1.1.0 -b 1.1.0

cmake . -DCMAKE_INSTALL_PREFIX=/usr/
make
make install

第二步、安装 Libvisio2svg 工具

git clone https://github.com/kakwa/libvisio2svg.git
git checkout tags/0.5.5 -b 0.5.5

cmake . -DCMAKE_INSTALL_PREFIX=/usr/ -DUNSAFE_FILENAME=ON
make
make install

注意事项:[……]

READ MORE

「PlantUML」- 安装

on Debian 10

apt-get install -y plantuml

直接现在安装
发行版的软件通常较旧,Debian 10,plantuml.1.2018.13,现在都 plantuml.1.2021.1 版本,因此我们进行手动安装。

mkdir -pv /opt/plantuml/

wget -P /opt/plantuml/ \
https://phoenixnap.dl.sourceforge.net/project/plantuml/1.2021.1/plantuml.1.2021.1.jar

cat > /opt/plantuml/plantuml.sh <<EOF
#!/bin/sh
dirname=$(dirname $(readlink -f $0))
java -jar $dirname/plantuml.jar ${@
EOF

ln -snf /opt/plantuml/plantuml.sh /usr/local/bin/plantuml

参考文献
Download page[……]

READ MORE

「XMind」- 安装与升级

XMind 202101132117 on Debian 10
# 02/08/2021 拥抱新事物,使用 XMind 2020 版本,安装过程大致如下:
方法一、通过 deb 安装(默认位于 /opt/XMind 目录中)

# 第一步、访问 https://www.xmind.net/download/xmind/ 进行下载
# 下载 deb 安装包

# 第二步、执行安装命令
dpkg -i XMind-2020-for-Linux-amd-64bit-10.3.1-202101132117.deb

方法二、通过 snap 安装

snap install xmind
snap run xmind

补充说明: 1)我们没有使用 snap 安装。由于我们某些 .xmind 没有保存在 $HOME 中,如果以 snap 安装,需要特殊处理才能选择这些文件; 2)通过 snap 安装,默认位于 /snap/xmind 目录,但不建议直接运行二进制。应该使用 snap run xmind 或者 .desktop 文件;
XMind 8 Update 9 on Debian 10
# 03/09/2020 参考 How to install XMind 8 on generic Linux 文档;[……]

READ MORE

「ditaa」- DIagrams Through Ascii Art

ditaa,该工具将字符图(Ascii Art)转为图片。
示例说明
对于如下字符图片:

+——–+ +——-+ +——-+
| | –+ ditaa +–> | |
| Text | +——-+ |diagram|
|Document| |!magic!| | |
| {d}| | | | |
+—+—-+ +——-+ +——-+
: ^
| Lots of work |
+————————-+

通过 ditaa 命令,将生成如下图片:
应用场景
Ceph 官方文档的插图是通过 ditaa 进行绘制的,其托管在 GitHub 中,由 GitHub 负责渲染; https://github.com/ceph/ceph/edit/main/doc/rbd/iscsi-overview.rst
参考文献
ditaa[……]

READ MORE

「draw.io」- diagrams.net

相关链接
GitHub – jgraph/drawio: Source to app.diagrams.net GitHub – jgraph/drawio-desktop: Official electron build of diagrams.net[……]

READ MORE

「draw.io」- 安装(Ubuntu、Debian、CentOS)

问题描述
我们没有采用自建 draw.io 服务,而是使用它的客户端 jgraph/drawio-desktop: Official electron build of diagrams.net 软件。
该笔记将记录:在 Linux 中,安装 drawio-desktop 方法,以及常见问题的解决方法。
解决方案
通过 AppImage 运行

wget https://github.com/jgraph/drawio-desktop/releases/download/v14.6.13/drawio-x86_64-14.6.13.AppImage
chmod u+x drawio-x86_64-14.6.13.AppImage
./drawio-x86_64-14.6.13.AppImage

# 04/12/2022 现在已发布 drawio-desktop v17.4.2 版本;
常见问题处理
chrome-sandbox is owned by root and has mode 4755
Solve “The SUID sandbox helper binary was found, but is not configured correctly.” (3 solutions!) | by Authmane Terki | Medium
问题描述:在启动 drawio-desktop.AppImage 应用时,产生如下错误信息:

[11441:1216/003855.672724:FATAL:setuid_sandbox_host.cc(158)] The SUID sandbox he
lper binary was found, but is not configured correctly. Rather than run without
sandboxing I’m aborting now. You need to make sure that /tmp/.mount_draw.ijM9w4w
/chrome-sandbox is owned by root and has mode 4755.
Trace/breakpoint trap

原因分析:这是个老问题了,只需要在启动时指定 –no-sandbox 选项即可。
解决方案:

drawio-desktop.AppImage –no-sandbox[……]

READ MORE

「seqdiag」- 时序图绘制工具

问题描述
该部分笔记将整理 seqdiag 使用方法。本文内容对官方文档进行梳理与摘要。
如何使用
通过,向seqdiag中输入“描述文件”,它会输出时序图。使用seqdiag的步骤: 1)编写.diag文件; 2)将编写好的.diag文件输入seqdiag中,它就会生成类似的序列图;
接下来就介绍如何使用安装并使用seqdiag工具。
安装工具

#!/bin/sh

# 在Debian中,可以安装python-seqdiag软件包:
apt-get install python-seqdiag

# 或者更通用的办法是通过pip安装:
pip install seqdiag

在安装成功后,就可以使用seqdiag(1)命令。
第一步、创建描述文件
创建 simple.diag 文件,内容如下:

seqdiag {
browser -> webserver [label = “GET /index.html”];
browser <– webserver;
browser -> webserver [label = “POST /blog/comment”];
webserver -> database [label = “INSERT comment”];
webserver <– database;
browser <– webserver;
}

第二步、生成序列图
执行 seqdiag simple.diag 命令,该命令会成一张PNG图片,图片的内容为:

快速入门与相关文档
有关特点、安装要求、安装方法、简单示例、字体设置等等内容,参考官方「Introduction of seqdiag」手册。
修改字体 (1)命令行使用-f选项。或者(2)使用配置文件($HOME/.blockdiagrc)自定字体:

[seqdiag]
fontpath = /usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf

字体大小

seqdiag {
// Set fontsize.
default_fontsize = 16; // default value is 11
}

图形宽度

seqdiag {
edge_length = 300; // 两个列之间的宽度,default value is 192
span_height = 80; // 行高(非整个图形高度),def[……]

READ MORE

「HTML」- 文档管理及操作

HTML 转 TEXT
html2text 将HTML转化为TEXT。当时是和HTML显示格式一致的文本格式。使用-utf8选项来支持UTF-8文本。 Homepage: http://www.mbayer.de/html2text/
lynx lynx -dump input.html > output.txt lynx是一个文字界面的浏览器,但是其–dump选项,可以将页面转化为文本。 Homepage: http://lynx.invisible-island.net/ 类似的工具还有Links:http://links.twibright.com/
w3m w3m -dump input.html > output.txt
links links -dump input.html > output.txt[……]

READ MORE

「Learning」- 获取知识内容的途径

信息采集 —— 其是对学习路线的填充并晚上
教育培训
我们现阶段(12/20/2022)非常倾向于培训机构。诚然机构间的质量参差不齐,但是大多数机构都能做到这几点:(1)引导我们入门;(2)给出完整的知识结构;(3)相关技术发展现状。我们非常关心这几点,所以我们认为培训机构还是值得考虑的(诚然价格也是考虑因素之一);
书籍文献
这类书籍文章也能够引导我们如何学习,也具有入门级别的演示,也具有进阶内容。但是相比培训机构(在知识摄取方式上)效果会差一点:(1)文字的阅读需要耐心和时间,而且断句、理解,都需要时间和精力;
部分书籍,在描述某个技术专题或术语的时候,其并未按照清晰的结构进行描述。我们更倾向于的结构:给出关键性描述(一个词、一句话),并展开解释;
官方文档
效果类似于书籍文章,但是官方文档对新人的友好度较差,不像书籍文章那样经过精心编排和细心解释;
博客文章
相比书籍或文档,博客文章并非系列集合,而是针对某个主题的进一步讨论,其能加深我们对被研究对象的某部分的理解,而非对被研究对象的完整介绍;
常用书籍及文档下载站点
购买电子书
https://bookschina.bookask.com/ https://www.ituring.com.cn/ http://www.broadview.com.cn/
http://e.dangdang.com/index_page.html https://ebooks.jd.com/
caibitim.duckdns
https://book.caibitim.duckdns.org/
PDF Drive – Search and download PDF files for free.
PDF Drive | PDF Drive – Search and download PDF files for free.
Library Genesis
Library Genesis / Library Genesis/Fun(简单搜索页面)
搜索找各专业教科书几乎百发百中 支持诸如 Author, ISBN, MD5 等等高级搜索方法供你花式搜书
Z-Library – Electronic library. Download books free. Finding books
Z-Library – Electronic library. Download books free. Finding books 和 LibGen 的重合度很高,是个商业网站
Sci-Hub – removing barriers in the way of science
Sci-Hub: r[……]

READ MORE

「MHT」- MHTML, MIME HTML

Chrome web store/Save As MHT 该插件能够将网页保存为 MHT 文件;
参考文献
Article – How to open MHT (MIME HTML)…[……]

READ MORE

「Office Suite」- 办公套件

办公套件
YOZO Office
WPS Office – Free Office Download for PC &amp; Mobile, Alternative to MS Office
LibreOffice – Free Office Suite – Based on OpenOffice
# 07/28/2021 以前,总觉得 Libreoffice 运行速度慢。换新电脑才发现,原来是自己配置不行。
AbiWord – a word processing program
https://www.abisource.com/
Office Open XML
Wikipedia/Office Open XML Understanding the Open XML file formats
TODO 文档操作 https://en.wikipedia.org/wiki/Office_Open_XML[……]

READ MORE

「WPS for Linux」- 使用记录

官网地址:https://www.wps.com/linux 下载地址:http://wps-community.org/downloads
使用问题记录
# 11/25/2020 WPS 11.1.0.9719
打开 XLS 的速度比较慢。
# 01/26/2021 WPS 11.1.0.10161
使用 deb 安装,默认安装目录:/opt/kingsoft/wps-office/
每次新打开 XLS 的速度比较慢,并且在这个过程中,无法关闭 WPS 程序。如果文档已经打开,关闭文档,再打开文档,速度就很快。我们无法解决该问题,只能寻找替代方案。目前(01/26/2021)我们开始使用 YOZO Office 套件,它不存在该问题。
# 12/13/2022 WPS 11.1.0.11664
/opt/kingsoft/wps-office/office6/wpsoffice /prometheus 该进程占用 CPU 较高 最新版WPS CPU占比高- Community – Deepin Technology
常见错误汇总
./office6/wpp: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory
原因:缺少libpng12 解决:安装libpng12,amd64的。我使用的发行版为Debian,由于这个包太老了,新的发行版里已经移除了,到Debian官网下载libpng12就可以了。
Some formula symbols might not be displayed correctly due to …
原因:缺少某些字体 解决:在 wps 的安装目录下有个 install_fonts 的脚本,执行这个脚本安装一些相关的字体即可。[……]

READ MORE

「YOZO Office」

官方站点:https://www.yozosoft.com/index.html 下载地址:https://www.yozosoft.com/product-officelinux.html
使用记录
# 01/26/2021 我们目前使用 永中 Office Linux 版 8.0.1331.101ZH.S1[……]

READ MORE

「LaTex」- 安装

LaTex 2018.20190227-2 on Debian GNU/Linux 10 (buster)
Latex – Debian Wiki

apt-get install texlive-base texlive

CTAN
CTAN: Comprehensive TeX Archive Network
TikZ package
TikZ package – Overleaf, Online LaTeX Editor
TikZ is probably the most complex and powerful tool to create graphic elements in LATEX.
standalone[……]

READ MORE

「LaTex」- 快速开始(学习笔记)

通过参考 Learn LaTeX in 30 minutes – Overleaf, Online LaTeX Editor 页面,我们对 LaTex 展开快速学习。
该笔记将记录:在学习上述页面时,我们记下的笔记。
编辑工具
使用纯文本编辑器可以完成 LaTeX 编写,但是工具让我们更加高效、准确: 1)使用 Overleaf 在线编辑查看; 2)Visual Studio Code + LaTeX Workshop;(我们正在使用的工具)
编写简单的 LaTeX 文档

% 指定文档类型,除了 article 还有 book、report 等等
\documentclass{article}

% 文档开始,以 \end{document} 结束
% This is known as the body of the document.
\begin{document}
First document. This is a simple example, with no
extra parameters or packages included.

% This is a commnet.
\end{document}

稍微复杂的 LaTex 文档

% 定义字体大小与纸张大小
\documentclass[12pt, letterpaper]{article}
\usepackage[utf8]{inputenc} % 指定文档编码

% 为文档添加标题
\title{First document}
\author{Hubert Farnsworth \thanks{funded by the Overleaf team}}
\date{February 2014}

\begin{document}

% 使标题能够显示出来
\maketitle

% 这是一行普通的文本
We have now added a title, author and date to our first \LaTeX{} document!

% 为字体设置特殊样式
Some of the \textbf{greatest} % bold
discoveries in \underline{science} % italics
were made by \textbf{\textit{accident}}. % Underline

% \emph 的命令取决与上下文:在正常情况下,会将字体倾斜;在斜体中,会将字体变正常
Some of the greatest \emph{discoveries}
in science
were made by accident.

\textit{Some of the great[……]

READ MORE

「LaTex」- bytefield

问题描述
参考问题 Draw a Table with Graphviz
经过在 Software Recommendations 上提问,以及一番查找之后,我们被安利 LaTex 的 bytefield 包。
该笔记将记录:如何使用 LaTex 的 bytefield 包绘制数据图。
解决方案
第一步、安装 bytefield 扩展

# on Debian GNU/Linux 10 (buster)
apt-get install texlive-science

第二步、编辑并查看

\documentclass[12pt]{article}
\pagestyle{empty} % 清除页面其他部分
\usepackage{bytefield}

\begin{document}
\begin{center}
\begin{bytefield}{16}
\wordbox{1}{A 16-bit field} \\
\bitbox{8}{8 bits} & \bitbox{8}{8 more bits} \\
\wordbox{2}{A 32-bit field. Note that text wraps within the box.}
\end{bytefield}
\end{center}
\end{document}

常见问题处理
使用 standalone 导致 \bitheader 隐藏
Using bytefield in standalone class cuts the field numbers – TeX – LaTeX Stack Exchange
当 \documentclass{standalone} 时,在 bytefield 中,导致 \bitheader 隐藏,无法正常显示
原因在与 bitheader 不是边界的组成部分,导致无法显示
解决方法则是加个边界:

\documentclass[border={.5 .5 .5 2mm}]{standalone}

相关链接
The bytefield package∗ Scott Pakin scott+bf@pakin.org October 31, 2020 https://mirrors.concertpass.com/tex-archive/macros/latex/contrib/bytefield/README
参考文献
How can I change the margins in La[……]

READ MORE