-
Notifications
You must be signed in to change notification settings - Fork 0
/
local-search.xml
95 lines (45 loc) · 21 KB
/
local-search.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?xml version="1.0" encoding="utf-8"?>
<search>
<entry>
<title>Software Foundation 学习笔记</title>
<link href="/2024/03/21/coq-sf/"/>
<url>/2024/03/21/coq-sf/</url>
<content type="html"><![CDATA[<p>Definition : </p><p>Inductive : <strong>递归</strong>定义类型</p><p>simpl : 根据定义等自动化简</p><p>reflexivity : 等式自反性得证</p><p>rewrite : 使用引理重写</p>]]></content>
<categories>
<category>CS</category>
</categories>
<tags>
<tag>Coq</tag>
<tag>Formal Verification</tag>
</tags>
</entry>
<entry>
<title>Arch Linux 配置/工作流</title>
<link href="/2024/02/25/personal-arch-linux-setup/"/>
<url>/2024/02/25/personal-arch-linux-setup/</url>
<content type="html"><![CDATA[<p>本文主要介绍桌面环境 (DE) 以及 Windows 应用替代方案,以及一些使用注意事项。</p><p>初学者建议阅读 <a href="https://arch.icekylin.online/">archlinux 简明指南</a> <a href="https://wiki.archlinux.org/">ArchWiki</a> 并熟悉 Linux 基础操作,本文将不会重复说明此类内容。</p><p>pacman 常用命令(待更新</p><p>AUR Helper: yay / paru / pamac ……</p><figure class="highlight crystal"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs crystal"><span class="hljs-variable">$ </span>pacman -Ss <br><span class="hljs-variable">$ </span>pacman -Syyu<br><span class="hljs-variable">$ </span>pacman -Rs<br><span class="hljs-variable">$ </span>pacman -R<br><span class="hljs-variable">$ </span>pacman -Qi<br><span class="hljs-variable">$ </span>pacman -Scc<br></code></pre></td></tr></table></figure><p>目前显示管理-桌面环境方案:SDDM + KDE Plasma,准备切换至:Hyprland / SDDM + Hyprland & KDE Plasma</p><p>Electron 框架在 Wayland 下支持 text-input-v1,目前须手动追加应用启动参数 <code>--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime</code> 以启用输入法支持</p><h3 id="桌面环境"><a href="#桌面环境" class="headerlink" title="桌面环境"></a>桌面环境</h3><h5 id="KDE-Plasma-略"><a href="#KDE-Plasma-略" class="headerlink" title="KDE Plasma - 略"></a>KDE Plasma - 略</h5><h3 id="桌面美化"><a href="#桌面美化" class="headerlink" title="桌面美化"></a>桌面美化</h3><h5 id="latte-dock"><a href="#latte-dock" class="headerlink" title="latte-dock"></a>latte-dock</h5><h5 id="yin-yang"><a href="#yin-yang" class="headerlink" title="yin-yang"></a>yin-yang</h5><h3 id="系统工具"><a href="#系统工具" class="headerlink" title="系统工具"></a>系统工具</h3><h5 id="Input-Method-multi-lang-extra-fcitx5"><a href="#Input-Method-multi-lang-extra-fcitx5" class="headerlink" title="Input Method(multi-lang) - extra/fcitx5"></a>Input Method(multi-lang) - extra/fcitx5</h5><blockquote><p>Next generation of fcitx</p></blockquote><p>输入法键盘配置:<code>English(US) + 拼音[extra/fcitx5-chinese-addons] + French(Canada) + Mozc[extra/fcitx5-mozc]</code></p><h3 id="开发工具"><a href="#开发工具" class="headerlink" title="开发工具"></a>开发工具</h3><h5 id="IntelliJ-IDEA-extra-intellij-idea-community-edition"><a href="#IntelliJ-IDEA-extra-intellij-idea-community-edition" class="headerlink" title="IntelliJ IDEA - extra/intellij-idea-community-edition"></a>IntelliJ IDEA - extra/intellij-idea-community-edition</h5><p>推荐追加环境变量 <code>GDK_SCALE=2</code>以启用整数(200%)缩放支持,分数缩放支持可参考 <a href="wiki.archlinux.org/title/HiDPI#Java_applications">HiDPI - Archwiki</a></p><p>注意分数缩放可能导致显示模糊,须自行调整对应显示协议下的配置!!!</p><h5 id="VSCodium-aur-archlinuxcn-arch4edu-vscodium-bin"><a href="#VSCodium-aur-archlinuxcn-arch4edu-vscodium-bin" class="headerlink" title="VSCodium - aur(archlinuxcn, arch4edu)/vscodium-bin"></a>VSCodium - aur(archlinuxcn, arch4edu)/vscodium-bin</h5><blockquote><p>Binary releases of VS Code without MS branding/telemetry/licensing.</p></blockquote><p>推荐安装:<code>aur/vscodium-bin-marketplace</code> <code>aur/vscodium-bin-features</code> 以启用插件商店和特性支持</p><p>默认安装会创建 <code>codium.desktop</code> <code>codium-wayland.desktop</code> Desktop entry,后者默认以 Wayland 协议启动窗口(<code>--enable-features=UseOzonePlatform,WaylandWindowDecorations --ozone-platform=wayland --enable-wayland-ime</code>)</p><p>==> NOTE: 要传递给 electron 的自定义参数应该写在: ~/.config/codium-flags.conf</p><p>==> NOTE: 如果要在 QQ 中下载文件,请先在「设置」->「存储管理」中把下载文件夹更改为系统的“下载”/“Downloads”文件夹。</p><h3 id="通讯"><a href="#通讯" class="headerlink" title="通讯"></a>通讯</h3><h5 id="TG-archlinuxcn-telegram-desktop-lily"><a href="#TG-archlinuxcn-telegram-desktop-lily" class="headerlink" title="TG - archlinuxcn/telegram-desktop-lily"></a>TG - archlinuxcn/telegram-desktop-lily</h5><blockquote><p>Official Telegram Desktop client with megumifox & lily’s patch</p></blockquote><h5 id="QQ-aur-linuxqq-nt-bwrap"><a href="#QQ-aur-linuxqq-nt-bwrap" class="headerlink" title="QQ - aur/linuxqq-nt-bwrap"></a>QQ - aur/linuxqq-nt-bwrap</h5><blockquote><p>New Linux QQ based on Electron, with bubblewrap sandbox and some tweaks </p></blockquote><p>==> NOTE: 要传递给 electron 的自定义参数应该写在: ~/.config/qq-electron-flags.conf</p><p>==> NOTE: 如果要在 QQ 中下载文件,请先在「设置」->「存储管理」中把下载文件夹更改为系统的“下载”/“Downloads”文件夹。</p><h5 id="Wechat"><a href="#Wechat" class="headerlink" title="Wechat"></a>Wechat</h5><p>Please Use Wechat on MacOS! <img src="https://raw.githubusercontent.com/definfo/upgit_definfo/main/B8CFA6C5023C7E8EF4D68C60E90D8FD9.jpg?token=AP3O7X3RMOHC6ULV2BGTNPTF3QNNG" alt="longtu"></p>]]></content>
<tags>
<tag>Linux</tag>
</tags>
</entry>
<entry>
<title>Python 环境总结</title>
<link href="/2024/01/18/python-env/"/>
<url>/2024/01/18/python-env/</url>
<content type="html"><![CDATA[<h3 id="Python-Package-Management"><a href="#Python-Package-Management" class="headerlink" title="Python Package Management"></a>Python Package Management</h3><h4 id="现状"><a href="#现状" class="headerlink" title="现状"></a>现状</h4><p>以 Arch Linux 为例,默认的包管理器 pacman 基本取代了 pip 的生态位,将系统级 Python Package 纳入包管理,core repo 提供的 Python pip / setuptools 被设置为可选依赖(不默认安装)。</p><p>执行 <code>sudo pip install [package]</code> </p><p><strong>Arch Linux</strong><br>无法安装,<code>Error:externally-managed-environment</code>,建议使用 venv / pipx 并提示 PEP 668。</p><p><strong>Ubuntu 22.04.3 on WSL2</strong><br>正常安装,<code>Warning:Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager.</code>,建议使用虚拟环境。</p><p><strong>Windows 11 23H2 22635.2915</strong><br>正常安装</p><h4 id="Arch-Linux-禁用-pip-原因"><a href="#Arch-Linux-禁用-pip-原因" class="headerlink" title="Arch Linux 禁用 pip 原因"></a>Arch Linux 禁用 pip 原因</h4><p>滚动发行的特性要求系统由包管理器对所有组件进行统一更新(分析依赖关系,解决冲突,选择软件源,etc.),因此需要尽可能排除其他包管理器的影响。得益于 AUR 的生态建设,常见包都有收录(未收录也可以按照教程构建 PKGBUILD 文件)</p><h4 id="Ex"><a href="#Ex" class="headerlink" title="Ex:"></a>Ex:</h4><figure class="highlight pgsql"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs pgsql">$ sudo pacman -S python-[package]<br>// Recommended, install <span class="hljs-keyword">in</span> <span class="hljs-keyword">system</span> dir /usr<br>$ sudo pip install [package]<br>// Should never be used (<span class="hljs-keyword">by</span> <span class="hljs-keyword">default</span> banned), will cause <span class="hljs-keyword">conflict</span> <span class="hljs-keyword">with</span> pacman<br></code></pre></td></tr></table></figure><figure class="highlight scss"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs scss">$ pip install <span class="hljs-attr">--user</span> <span class="hljs-selector-attr">[package]</span><br><span class="hljs-comment">// Optional if want to install user-wide package</span><br><span class="hljs-comment">// Need to deal with dependency</span><br></code></pre></td></tr></table></figure><h4 id="Ref"><a href="#Ref" class="headerlink" title="Ref:"></a>Ref:</h4><p><a href="https://wiki.archlinux.org/title/Python#Package_management">Python - ArchWiki</a><br><a href="https://wiki.archlinux.org/title/Talk:Python#">Talk:Python - ArchWiki</a><br><a href="https://wiki.archlinux.org/title/System_maintenance#Be_careful_with_unofficial_packages">System maintenance - ArchWiki</a><br><a href="https://arch-linux.osrc.com/prepare/understand.html#archlinux-%E7%9A%84%E7%89%B9%E7%82%B9">archlinux 的特点</a></p><h3 id="Python-Virtual-Environment"><a href="#Python-Virtual-Environment" class="headerlink" title="Python Virtual Environment"></a>Python Virtual Environment</h3><blockquote><p>A virtual environment is a directory into which some binaries and shell scripts are installed. The binaries include <em>python</em> for executing scripts and <em>pip</em> for installing other modules within the environment. There are also shell scripts (one for <a href="https://wiki.archlinux.org/title/Bash">bash</a>, csh, and <a href="https://wiki.archlinux.org/title/Fish">fish</a>) to activate the environment. Essentially, a virtual environment mimics a full system install of <a href="https://wiki.archlinux.org/title/Python">Python</a> and all of the desired modules without interfering with any system on which the application might run.</p></blockquote><h4 id="省流:"><a href="#省流:" class="headerlink" title="省流:"></a>省流:</h4><p>包含 Python 可执行文件,包管理器,以及(控制环境激活状态的)脚本的<strong>隔离工作目录</strong>,不干扰系统状态 (某种意义上的无状态?)</p><h4 id="venv-virtualenv"><a href="#venv-virtualenv" class="headerlink" title="venv / virtualenv"></a>venv / virtualenv</h4><p>轻量化,提供基础的 Python 3 虚拟环境</p><figure class="highlight gams"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><code class="hljs gams"><span class="hljs-comment">// Create using venv (integrated in Python 3.3+)</span><br><span class="hljs-symbol">$</span> python -m venv [/path/to/envname]<br><span class="hljs-symbol">$</span> python3.x -m venv [/path/to/envname]<br><br><span class="hljs-comment">// Create using virtualenv (available in python-virtualenv)</span><br><span class="hljs-symbol">$</span> virtualenv [envname]<br><br><span class="hljs-comment">// Activate</span><br><span class="hljs-symbol">$</span> source [/path/to/envname]/bin/activate<br><br><span class="hljs-comment">// Install a package</span><br>(same as pip)<br><br><span class="hljs-comment">// Deactivate</span><br>(envname) <span class="hljs-symbol">$</span> deactivate<br><br><span class="hljs-comment">// Delete</span><br><span class="hljs-symbol">$</span> sudo rm -r [/path/to/envname]<br></code></pre></td></tr></table></figure><p>实质上是对文件系统的管理</p><p>示例目录结构如下(使用 Python 3.8):</p><figure class="highlight xl"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><code class="hljs xl">.<br>├── bin<br>│ ├── activate<br>│ ├── activate.csh<br>│ ├── activate.fish<br>│ ├── Activate.ps1<br>│ ├── pip<br>│ ├── pip3<br>│ ├── pip3.<span class="hljs-number">8</span><br>│ ├── <span class="hljs-function"><span class="hljs-title">python</span> -></span> python3.<span class="hljs-number">8</span><br>│ ├── <span class="hljs-function"><span class="hljs-title">python3</span> -></span> python3.<span class="hljs-number">8</span><br>│ └── <span class="hljs-function"><span class="hljs-title">python3</span>.8 -></span> /usr/bin/python3.<span class="hljs-number">8</span><br>├── include<br>├── lib<br>│ └── python3.<span class="hljs-number">8</span><br>│ └── site-packages<br>├── <span class="hljs-function"><span class="hljs-title">lib64</span> -></span> lib<br>└── pyvenv.cfg<br></code></pre></td></tr></table></figure><h4 id="conda-文档"><a href="#conda-文档" class="headerlink" title="conda 文档"></a>conda <a href="https://docs.conda.io/en/latest/">文档</a></h4><p>常见于<del>Jupyter Notebook</del>炼丹、科学计算等领域,默认使用 conda 处理内部依赖<del>然而求解能力好像还不如 pip</del></p><figure class="highlight scss"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><code class="hljs scss"><span class="hljs-comment">// Create env (Install miniconda/anaconda first)</span><br>$ conda create <span class="hljs-attr">--name</span> <span class="hljs-selector-attr">[envname]</span> <span class="hljs-selector-attr">[package(=version)]</span><br><br><span class="hljs-comment">// Activate</span><br>$ conda activate <span class="hljs-selector-attr">[envname]</span><br><br><span class="hljs-comment">// Install a package</span><br>$ conda install <span class="hljs-selector-attr">[package(=version)]</span><br><br><span class="hljs-comment">// Deactivate</span><br>(envname) $ conda deactivate<br><br><span class="hljs-comment">// Delete</span><br>$ conda remove -n <span class="hljs-selector-attr">[envname]</span> <span class="hljs-attr">--all</span><br></code></pre></td></tr></table></figure><h4 id="pipx-文档"><a href="#pipx-文档" class="headerlink" title="pipx 文档"></a>pipx <a href="https://github.com/pypa/pipx">文档</a></h4><p>类似于系统包管理器,将 Python Package 作为独立应用程序管理(包括 Shell 支持等),因此适合管理基于 Python 的用户端应用程序。</p><blockquote><p><strong>In a way, it turns Python Package Index (PyPI) into a big app store for Python applications.</strong></p></blockquote><figure class="highlight asciidoc"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs asciidoc"><span class="hljs-comment">// Install a package (from PyPI or source control)</span><br>$ pipx install [package]<br>$ pipx install git+<span class="hljs-link">https://link/to/git/repo/</span>[<span class="hljs-string">package</span>].git@[branch/git hash]<br>$ pipx install https://link/to/archive/release.zip<br><br><span class="hljs-comment">// Inject a package (Add additional packages to an existing application installe)</span><br>$ pipx inject [app] [package]<br><br><span class="hljs-comment">// Run an app in a temporary virtual environment</span><br>$ pipx run [app] [args...]<br></code></pre></td></tr></table></figure><h4 id="poetry-pipenv-文档"><a href="#poetry-pipenv-文档" class="headerlink" title="poetry / pipenv 文档"></a>poetry <del>/ pipenv</del> <a href="https://python-poetry.org/docs/">文档</a></h4><p>目前 poetry 已经全面取代了 pipenv (<a href="https://johnfraney.ca/blog/pipenv-poetry-benchmarks-ergonomics/">Benchmark</a>)<br>需要注意的是,poetry 是一个<strong>依赖管理&打包工具</strong>,必须安装在现有的隔离环境下,常与 pipx 配合使用方便开发 Python 应用 (Continuous Integration)</p><h4 id="docker-python"><a href="#docker-python" class="headerlink" title="docker-python"></a>docker-python</h4><p><del>都用 docker 了,不会自己写 docker-cli / docker-compose?</del></p><h4 id="Ref-1"><a href="#Ref-1" class="headerlink" title="Ref:"></a>Ref:</h4><p><a href="https://wiki.archlinux.org/title/Python/Virtual_environment">Python/Virtual environment - Archwiki</a></p>]]></content>
<categories>
<category>CS</category>
</categories>
<tags>
<tag>Python</tag>
<tag>conda</tag>
<tag>venv</tag>
</tags>
</entry>
<entry>
<title>Hello World</title>
<link href="/2024/01/11/hello-world/"/>
<url>/2024/01/11/hello-world/</url>
<content type="html"><![CDATA[<p>Welcome to <a href="https://hexo.io/">Hexo</a>! This is your very first post. Check <a href="https://hexo.io/docs/">documentation</a> for more info. If you get any problems when using Hexo, you can find the answer in <a href="https://hexo.io/docs/troubleshooting.html">troubleshooting</a> or you can ask me on <a href="https://github.com/hexojs/hexo/issues">GitHub</a>.</p><h2 id="Quick-Start"><a href="#Quick-Start" class="headerlink" title="Quick Start"></a>Quick Start</h2><h3 id="Create-a-new-post"><a href="#Create-a-new-post" class="headerlink" title="Create a new post"></a>Create a new post</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash">$ hexo new <span class="hljs-string">"My New Post"</span><br></code></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/writing.html">Writing</a></p><h3 id="Run-server"><a href="#Run-server" class="headerlink" title="Run server"></a>Run server</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash">$ hexo server<br></code></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/server.html">Server</a></p><h3 id="Generate-static-files"><a href="#Generate-static-files" class="headerlink" title="Generate static files"></a>Generate static files</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash">$ hexo generate<br></code></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/generating.html">Generating</a></p><h3 id="Deploy-to-remote-sites"><a href="#Deploy-to-remote-sites" class="headerlink" title="Deploy to remote sites"></a>Deploy to remote sites</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash">$ hexo deploy<br></code></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/one-command-deployment.html">Deployment</a></p>]]></content>
</entry>
</search>