<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>CuSO4_Deposit</title><link>https://depoze.xyz/en/</link><description>Recent content on CuSO4_Deposit</description><generator>Hugo</generator><language>en</language><lastBuildDate>Mon, 28 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://depoze.xyz/en/index.xml" rel="self" type="application/rss+xml"/><item><title>Friends</title><link>https://depoze.xyz/en/friends/</link><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/friends/</guid><description>&lt;div class="friend-container"&gt;&#10;&lt;div class="friend-card"&gt;&#10; &lt;div class="friend-avatar"&gt;&#10; &lt;img src="https://hsiaofeng.com/archives/avatar.jpg" alt="枫茶舍" loading="lazy" /&gt;&#10; &lt;/div&gt;&#10; &lt;div class="friend-info"&gt;&#10; &lt;a class="friend-name" href="https://hsiaofeng.com" target="_blank" rel="noopener noreferrer"&gt;枫茶舍&lt;/a&gt;&#10; &lt;p class="friend-bio"&gt;筱枫的笔记本、备忘录和工具箱&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div class="friend-card"&gt;&#10; &lt;div class="friend-avatar"&gt;&#10; &lt;img src="http://blog.brevityd.top/ryogishiki.png" alt="结垒" loading="lazy" /&gt;&#10; &lt;/div&gt;&#10; &lt;div class="friend-info"&gt;&#10; &lt;a class="friend-name" href="http://blog.brevityd.top" target="_blank" rel="noopener noreferrer"&gt;结垒&lt;/a&gt;&#10; &lt;p class="friend-bio"&gt;不要消解那无慰藉的忠诚&lt;/p&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;</description></item><item><title>Now</title><link>https://depoze.xyz/en/now/</link><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/now/</guid><description>&lt;p&gt;(This is a &lt;a href="https://nownownow.com/about"&gt;now page&lt;/a&gt;. It shares what I&amp;rsquo;d tell a friend I hadn&amp;rsquo;t seen in a year. Consider make one for your site!)&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;Last updated: 2026-07-22&lt;/em&gt;&lt;/p&gt;&#10;&lt;h2 id="work"&gt;Work&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Doing algorithms at a startup. Currently living the 996 life.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Spending most of my waking hours here.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="in-real-life"&gt;In Real Life&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Being a bit of a drinker.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Taking sleep seriously.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="in-the-cyber-world"&gt;In the Cyber World&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;The time I spend on rhythm games is gradually decreasing. Currently mainly playing Arcaea.&lt;/p&gt;</description></item><item><title>Uses</title><link>https://depoze.xyz/en/uses/</link><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/uses/</guid><description>&lt;p&gt;Hardware and software I use, sorted by how far I&amp;rsquo;d vouch for them. Tier 1 is what I&amp;rsquo;d pick again and can say why; Tier 2 is what I&amp;rsquo;m using now but haven&amp;rsquo;t compared enough to recommend.&lt;/p&gt;&#10;&lt;h1 id="tier-1--recommended"&gt;Tier 1 / recommended&lt;/h1&gt;&#10;&lt;h2 id="hardware"&gt;Hardware&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Laptop: Toshiba Dynabook G83/M with 8 GB RAM and 256 GB SSD&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Because it&amp;rsquo;s the lightest laptop I could find. I usually only need an ssh terminal when using a laptop, so I can still accept its lower performance for now.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Tablet: iPad Pro, 11-inch (3rd generation)&lt;/p&gt;</description></item><item><title>85 Disinfectant Column: Microsoft Excel Formulas I Wrote for Others and Bugs I Debugged</title><link>https://depoze.xyz/en/pages/excel-formulas/</link><pubDate>Sat, 17 Jan 2026 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/excel-formulas/</guid><description>Here I record the useful things I learned while writing Excel formulas for others, and the experience I gained dealing with Excel&amp;rsquo;s strange behavior for them.</description></item><item><title>Configuring a Xiaomi AI Speaker to Connect to a Computer (Windows, Linux)</title><link>https://depoze.xyz/en/pages/mi-ai-speaker/</link><pubDate>Mon, 20 Oct 2025 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/mi-ai-speaker/</guid><description>This article explains how to connect a Xiaomi AI Speaker to a computer as a speaker in Windows 11 and Linux, and shares the problems encountered during connection and their solutions, especially achieving a more stable connection under Linux via blueman and pavucontrol.</description></item><item><title>Some Official RSS Feeds</title><link>https://depoze.xyz/en/pages/official-rss-feeds/</link><pubDate>Mon, 13 Oct 2025 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/official-rss-feeds/</guid><description>Some services provide their official RSS feeds so you don&amp;rsquo;t have to use services like RSSHub. This page lists some.</description></item><item><title>An alternative solution to direnv dropping aliases and functions</title><link>https://depoze.xyz/en/pages/direnv-aliases/</link><pubDate>Sun, 12 Oct 2025 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/direnv-aliases/</guid><description>Direnv&amp;rsquo;s inability to export shell-specific aliases and functions, due to its shell-agnostic design, can be addressed in Nix by using pkgs.writeScriptBin to create executable scripts instead.</description></item><item><title>type unicode characters in Linux (most GTK- or Qt- based applications)</title><link>https://depoze.xyz/en/pages/type-unicode-linux/</link><pubDate>Fri, 26 Sep 2025 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/type-unicode-linux/</guid><description>This article explains how to type any unicode characters in GTK- or Qt- based applications conveniently. TL;DR try Ctrl + Shift + U</description></item><item><title>Use flakes within a git repo without commiting flake.nix</title><link>https://depoze.xyz/en/pages/flakes-in-git-repo/</link><pubDate>Fri, 12 Sep 2025 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/flakes-in-git-repo/</guid><description>&lt;p&gt;Doing the following allows you to use flakes to start a development environment without commit the &lt;code&gt;flake.nix&lt;/code&gt; to the repo, for cases when your team does not use nix. &lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;[&lt;/span&gt;1:user@hostname:~/project-name on main&lt;span style="color:#0550ae"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ nvim .envrc&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;direnv: error /home/user/project-name/.envrc is blocked. Run &lt;span style="color:#0a3069"&gt;`&lt;/span&gt;direnv allow&lt;span style="color:#0a3069"&gt;`&lt;/span&gt; to approve its content&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;[&lt;/span&gt;1:user@hostname:~/project-name on main&lt;span style="color:#0550ae"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ direnv allow&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;direnv: loading ~/project-name/.envrc&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;direnv: using flake ~/flake-project&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;direnv: nix-direnv: Renewed cache&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git-hooks.nix: updating /home/user/project-name repo&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/home/user/project-name/.pre-commit-config.yaml&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pre-commit installed at .git/hooks/pre-commit&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;direnv: &lt;span style="color:#6639ba"&gt;export&lt;/span&gt; +CONFIG_SHELL +HOST_PATH +IN_NIX_SHELL +NIX_BUILD_CORES +NIX_CFLAGS_COMPILE +NIX_ENFORCE_NO_NATIVE +NIX_LDFLAGS +NIX_STORE +NODE_PATH +SOURCE_DATE_EPOCH +__structuredAttrs +buildInputs +buildPhase +builder +cmakeFlags +configureFlags +depsBuildBuild +depsBuildBuildPropagated +depsBuildTarget +depsBuildTargetPropagated +depsHostHost +depsHostHostPropagated +depsTargetTarget +depsTargetTargetPropagated +doCheck +doInstallCheck +dontAddDisableDepTrack +mesonFlags +name +nativeBuildInputs +out +outputs +patches +phases +preferLocalBuild +propagatedBuildInputs +propagatedNativeBuildInputs +shell +shellHook +stdenv +strictDeps +system ~PATH ~XDG_DATA_DIRS&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;[&lt;/span&gt;1:user@hostname:~/project-name on main&lt;span style="color:#0550ae"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ gs&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;?? .direnv/&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;?? .envrc&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;?? .pre-commit-config.yaml&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;[&lt;/span&gt;1:user@hostname:~/project-name on main&lt;span style="color:#0550ae"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ cat .envrc&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;use flake ~/flake-project&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;watch_file ~/flake-project/flake.nix&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;[&lt;/span&gt;1:user@hostname:~/project-name on main&lt;span style="color:#0550ae"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ nvim ./.git/info/exclude&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;[&lt;/span&gt;1:user@hostname:~/project-name on main&lt;span style="color:#0550ae"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ gs&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;[&lt;/span&gt;1:user@hostname:~/project-name on main&lt;span style="color:#0550ae"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="footnotes" role="doc-endnotes"&gt;&#10;&lt;hr&gt;&#10;&lt;ol&gt;&#10;&lt;li id="fn:1"&gt;&#10;&lt;p&gt;&lt;a href="https://discourse.nixos.org/t/can-i-use-flakes-within-a-git-repo-without-committing-flake-nix/18196"&gt;https://discourse.nixos.org/t/can-i-use-flakes-within-a-git-repo-without-committing-flake-nix/18196&lt;/a&gt;&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Zustand Notes</title><link>https://depoze.xyz/en/pages/zustand/</link><pubDate>Tue, 09 Sep 2025 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/zustand/</guid><description>Zustand is a state management tool for React. This article records some very elementary usages of Zustand for understanding and future reference.</description></item><item><title>Manipulating Directories - Shell Builtins cd pushd and popd</title><link>https://depoze.xyz/en/pages/cd-pushd-popd/</link><pubDate>Thu, 04 Sep 2025 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/cd-pushd-popd/</guid><description>&lt;p&gt;Most modern shells have a set of shell builtins (e.g. &lt;a href="https://zsh.sourceforge.io/Doc/Release/Shell-Builtin-Commands.html"&gt;zsh&lt;/a&gt;), some of which can be used to manipulate directories.&lt;/p&gt;&#10;&lt;p&gt;To manipulate directories, a directory stack structure is maintained in memory. In bash it can also be accessed through the &lt;code&gt;$DIRSTACK&lt;/code&gt; shell variable. &lt;a href="https://www.gnu.org/software/bash/manual/html_node/The-Directory-Stack.html#The-Directory-Stack"&gt;bash&amp;rsquo;s introduction to the directory stack&lt;/a&gt;, &lt;a href="https://zsh.sourceforge.io/Intro/intro_6.html#SEC6"&gt;zsh&amp;rsquo;s introduction to the directory stack&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;With pushd and popd, you can enter a series of directories and leave them in reverse order.&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;[1:cuso4d@nightcord-laborari:~]&#10;$ pwd&#10;/home/cuso4d&#10;[1:cuso4d@nightcord-laborari:~]&#10;$ pushd ~/source/zsh&#10;~/source/zsh ~&#10;[1:cuso4d@nightcord-laborari:~/source/zsh on master]&#10;$ pushd ~/.ssh&#10;~/.ssh ~/source/zsh ~&#10;[1:cuso4d@nightcord-laborari:~/.ssh]&#10;$ popd&#10;~/source/zsh ~&#10;[1:cuso4d@nightcord-laborari:~/source/zsh on master]&#10;$ popd&#10;~&#10;[1:cuso4d@nightcord-laborari:~]&#10;$ pwd&#10;/home/cuso4d&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Taking zsh as an example, the directory stack is implemented as a linked list. It is located in &lt;code&gt;Src/Bulitin.c&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Finding All Other Packages That Depend on a Specific Nix Package - Notes on Fixing the Qt5 Deprecation</title><link>https://depoze.xyz/en/pages/nix-reverse-deps/</link><pubDate>Sat, 30 Aug 2025 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/nix-reverse-deps/</guid><description>&lt;p&gt;TL;DR Use the following command to find all other nix packages that depend on a specific package.&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;$ nix-store --query --referrers /nix/store/xxxxx&#10;&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#10;&lt;p&gt;Today, while running &lt;code&gt;nixos-rebuild&lt;/code&gt;, I got the following error:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;$ nrbt M A&#10;warning: Git tree &amp;#39;/home/cuso4d/.nixos&amp;#39; is dirty&#10;building the system configuration...&#10;warning: Git tree &amp;#39;/home/cuso4d/.nixos&amp;#39; is dirty&#10;error:&#10; … while calling the &amp;#39;head&amp;#39; builtin&#10; at /nix/store/4hm8lf740i8qvyg5pzdqfm0rpshwb7vn-source/lib/attrsets.nix:1544:13:&#10; 1543| if length values == 1 || pred here (elemAt values 1) (head values) then&#10; 1544| head values&#10; | ^&#10; 1545| else&#10;&#10; … while evaluating the attribute &amp;#39;value&amp;#39;&#10; at /nix/store/4hm8lf740i8qvyg5pzdqfm0rpshwb7vn-source/lib/modules.nix:1118:7:&#10; 1117| // {&#10; 1118| value = addErrorContext &amp;#34;while evaluating the option `${showOption loc}&amp;#39;:&amp;#34; value;&#10; | ^&#10; 1119| inherit (res.defsFinal&amp;#39;) highestPrio;&#10;&#10; … while evaluating the option `system.build.toplevel&amp;#39;:&#10;&#10; … while evaluating definitions from `/nix/store/4hm8lf740i8qvyg5pzdqfm0rpshwb7vn-source/nixos/modules/system/activation/top-level.nix&amp;#39;:&#10;&#10; … while evaluating the option `warnings&amp;#39;:&#10;&#10; … while evaluating definitions from `/nix/store/4hm8lf740i8qvyg5pzdqfm0rpshwb7vn-source/nixos/modules/system/boot/systemd.nix&amp;#39;:&#10;&#10; … while evaluating the option `systemd.services.home-manager-cuso4d.serviceConfig&amp;#39;:&#10;&#10; … while evaluating definitions from `/nix/store/7wkrw49sgffqpd9vm7dfa4ngbh4n2fk5-source/nixos&amp;#39;:&#10;&#10; … while evaluating the option `home-manager.users.cuso4d.home.file.&amp;#34;/home/cuso4d/.config/fontconfig/conf.d/10-hm-fonts.conf&amp;#34;.source&amp;#39;:&#10;&#10; … while evaluating definitions from `/nix/store/7wkrw49sgffqpd9vm7dfa4ngbh4n2fk5-source/modules/files.nix&amp;#39;:&#10;&#10; … while evaluating the option `home-manager.users.cuso4d.home.file.&amp;#34;/home/cuso4d/.config/fontconfig/conf.d/10-hm-fonts.conf&amp;#34;.text&amp;#39;:&#10;&#10; … while evaluating definitions from `/nix/store/7wkrw49sgffqpd9vm7dfa4ngbh4n2fk5-source/modules/misc/xdg.nix&amp;#39;:&#10;&#10; … while evaluating the option `home-manager.users.cuso4d.xdg.configFile.&amp;#34;fontconfig/conf.d/10-hm-fonts.conf&amp;#34;.text&amp;#39;:&#10;&#10; … while evaluating definitions from `/nix/store/7wkrw49sgffqpd9vm7dfa4ngbh4n2fk5-source/modules/misc/fontconfig.nix&amp;#39;:&#10;&#10; (stack trace truncated; use &amp;#39;--show-trace&amp;#39; to show the full, detailed trace)&#10;&#10; error: Package ‘qtwebengine-5.15.19’ in /nix/store/4hm8lf740i8qvyg5pzdqfm0rpshwb7vn-source/pkgs/development/libraries/qt-5/modules/qtwebengine.nix:442 is marked as insecure, refusing to evaluate.&#10;&#10;&#10; Known issues:&#10; - qt5 qtwebengine is unmaintained upstream since april 2025.&#10; It is based on chromium 87.0.4280.144, and supposedly patched up to 135.0.7049.95 which is outdated.&#10;&#10; Security issues are frequently discovered in chromium.&#10; The following list of CVEs was fixed in the life cycle of chromium 138 and likely also affects qtwebengine:&#10; - CVE-2025-8879&#10; - CVE-2025-8880&#10; - CVE-2025-8901&#10; - CVE-2025-8881&#10; - CVE-2025-8882&#10; - CVE-2025-8576&#10; - CVE-2025-8577&#10; - CVE-2025-8578&#10; - CVE-2025-8579&#10; - CVE-2025-8580&#10; - CVE-2025-8581&#10; - CVE-2025-8582&#10; - CVE-2025-8583&#10; - CVE-2025-8292&#10; - CVE-2025-8010&#10; - CVE-2025-8011&#10; - CVE-2025-7656&#10; - CVE-2025-6558 (known to be exploited in the wild)&#10; - CVE-2025-7657&#10; - CVE-2025-6554&#10; - CVE-2025-6555&#10; - CVE-2025-6556&#10; - CVE-2025-6557&#10;&#10; The actual list of CVEs affecting qtwebengine is likely much longer,&#10; as this list is missing issues fixed in chromium 136/137 and even more&#10; issues are continuously discovered and lack upstream fixes in qtwebengine.&#10;&#10;&#10; You can install it anyway by allowing this package, using the&#10; following methods:&#10;&#10; a) To temporarily allow all insecure packages, you can use an environment&#10; variable for a single invocation of the nix tools:&#10;&#10; $ export NIXPKGS_ALLOW_INSECURE=1&#10;&#10; Note: When using `nix shell`, `nix build`, `nix develop`, etc with a flake,&#10; then pass `--impure` in order to allow use of environment variables.&#10;&#10; b) for `nixos-rebuild` you can add ‘qtwebengine-5.15.19’ to&#10; `nixpkgs.config.permittedInsecurePackages` in the configuration.nix,&#10; like so:&#10;&#10; {&#10; nixpkgs.config.permittedInsecurePackages = [&#10; &amp;#34;qtwebengine-5.15.19&amp;#34;&#10; ];&#10; }&#10;&#10; c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add&#10; ‘qtwebengine-5.15.19’ to `permittedInsecurePackages` in&#10; ~/.config/nixpkgs/config.nix, like so:&#10;&#10; {&#10; permittedInsecurePackages = [&#10; &amp;#34;qtwebengine-5.15.19&amp;#34;&#10; ];&#10; }&#10;Command &amp;#39;nix --extra-experimental-features &amp;#39;nix-command flakes&amp;#39; build --print-out-paths &amp;#39;/home/cuso4d/.nixos#nixosConfigurations.&amp;#34;nightcord-dynamica&amp;#34;.config.system.build.toplevel&amp;#39; --no-link&amp;#39; returned non-zero exit status 1.&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;As you can see, during the build the package &lt;code&gt;qtwebengine-5.15.19&lt;/code&gt; blocked the build. I needed to find which packages depend on it, so I could make the corresponding adjustments to my system configuration.&lt;/p&gt;</description></item><item><title>Terraria Data Directory</title><link>https://depoze.xyz/en/pages/terraria-data-dir/</link><pubDate>Tue, 08 Jul 2025 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/terraria-data-dir/</guid><description>&lt;p&gt;The data directory of the Terraria client&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Windows: &lt;code&gt;~/Documents/My Games/Terraria/&lt;/code&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Linux: ``~/.local/share/Terraria/&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;If &amp;ldquo;Move to cloud&amp;rdquo; is enabled, the data is managed under the Steam directory, located at &lt;code&gt;&amp;lt;steamdir&amp;gt;/userdata/&amp;lt;numbers&amp;gt;/105600/remote/&lt;/code&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="references"&gt;References&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;a href="https://forums.terraria.org/index.php?threads/how-to-find-player-and-world-files.94619/"&gt;https://forums.terraria.org/index.php?threads/how-to-find-player-and-world-files.94619/&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;a href="https://www.reddit.com/r/Terraria/comments/3p3jfo/a_question_about_move_to_cloud/"&gt;https://www.reddit.com/r/Terraria/comments/3p3jfo/a_question_about_move_to_cloud/&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;a href="https://askubuntu.com/questions/679948/how-to-access-the-library-files-to-obtain-the-terraria-world-and-files-directo"&gt;https://askubuntu.com/questions/679948/how-to-access-the-library-files-to-obtain-the-terraria-world-and-files-directo&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Building loong64 Docker Images on NixOS</title><link>https://depoze.xyz/en/pages/nixos-loong64-docker/</link><pubDate>Fri, 20 Jun 2025 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/nixos-loong64-docker/</guid><description>&lt;p&gt;When trying to cross-compile a loong64 image on an x86_64 platform using docker buildx, a problem occurred:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;1 warning found (use docker --debug to expand):&#10;- InvalidBaseImagePlatform: Base image lcr.loongnix.cn/library/node:22.15-alpine3.21 was pulled with platform &amp;#34;linux/loong64&amp;#34;, expected &amp;#34;linux/amd64&amp;#34; for current build&#10;&#10;ERROR: failed to solve: process &amp;#34;/bin/sh -c npm run build&amp;#34; did not complete successfully: exit code: 1&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;When trying to build an image for another platform, the build arg that needs to be provided is &lt;code&gt;--build-arg BUILDPLATFORM=&amp;lt;arch&amp;gt;&lt;/code&gt;. The builder used by docker buildx can be seen with &lt;code&gt;docker buildx ls&lt;/code&gt;. Find the builder in use and inspect it:&lt;/p&gt;</description></item><item><title>Next build stuck on "Creating an optimized production build" forever</title><link>https://depoze.xyz/en/pages/next-build-stuck/</link><pubDate>Fri, 20 Jun 2025 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/next-build-stuck/</guid><description>&lt;h2 id="problem"&gt;Problem&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;next build&lt;/code&gt; stuck on &amp;ldquo;Creating an optimized production build&amp;rdquo; forever, with no useful logs.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;$ npm run build --verbose&#10;npm verbose cli /nix/store/c8jxsih8yy2rnncdmx2hyraizf689nvp-nodejs-22.14.0/bin/node /nix/store/c8jxsih8yy2rnncdmx2hyraizf689nvp-nodejs-22.14.0/bin/npm&#10;npm info using npm@10.9.2&#10;npm info using node@v22.14.0&#10;npm verbose title npm run build&#10;npm verbose argv &amp;#34;run&amp;#34; &amp;#34;build&amp;#34; &amp;#34;--loglevel&amp;#34; &amp;#34;verbose&amp;#34;&#10;npm verbose logfile logs-max:10 dir:/home/cuso4d/.npm/_logs/2025-06-20T11_37_08_833Z-&#10;npm verbose logfile /home/cuso4d/.npm/_logs/2025-06-20T11_37_08_833Z-debug-0.log&#10;&#10;&amp;gt; assistant-ui-starter@0.1.0 build&#10;&amp;gt; next build&#10;&#10; ▲ Next.js 15.3.1&#10; - Environments: .env&#10;&#10; Creating an optimized production build ...&#10;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#10;&lt;li&gt;The log file produced:&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;0 verbose cli /nix/store/c8jxsih8yy2rnncdmx2hyraizf689nvp-nodejs-22.14.0/bin/node /nix/store/c8jxsih8yy2rnncdmx2hyraizf689nvp-nodejs-22.14.0/bin/npm&#10;1 info using npm@10.9.2&#10;2 info using node@v22.14.0&#10;3 silly config load:file:/nix/store/c8jxsih8yy2rnncdmx2hyraizf689nvp-nodejs-22.14.0/lib/node_modules/npm/npmrc&#10;4 silly config load:file:/home/cuso4d/source/sci-assistant-frontend/.npmrc&#10;5 silly config load:file:/home/cuso4d/.npmrc&#10;6 silly config load:file:/nix/store/c8jxsih8yy2rnncdmx2hyraizf689nvp-nodejs-22.14.0/etc/npmrc&#10;7 verbose title npm&#10;8 verbose argv&#10;9 verbose logfile logs-max:10 dir:/home/cuso4d/.npm/_logs/2025-06-20T11_57_26_719Z-&#10;10 verbose logfile /home/cuso4d/.npm/_logs/2025-06-20T11_57_26_719Z-debug-0.log&#10;11 verbose cwd /home/cuso4d/source/sci-assistant-frontend&#10;12 verbose os Linux 6.12.33&#10;13 verbose node v22.14.0&#10;14 verbose npm v10.9.2&#10;15 verbose exit 1&#10;16 verbose code 1&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Many mentioned &amp;ldquo;&lt;strong&gt;You can&amp;rsquo;t have both dev and build at the same time.&lt;/strong&gt;&amp;rdquo; &lt;a href="https://github.com/vercel/next.js/discussions/60147#discussioncomment-7998137"&gt;source&lt;/a&gt;, though it is not my case.&lt;/p&gt;</description></item><item><title>Love Flops Viewing Retrospective Notes</title><link>https://depoze.xyz/en/pages/love-flops/</link><pubDate>Fri, 23 May 2025 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/love-flops/</guid><description>&lt;h1 id="spoiler-warning"&gt;Spoiler Warning&lt;/h1&gt;&#10;&lt;p&gt;⚠️ This article contains detailed plot discussion of &lt;em&gt;Love Flops&lt;/em&gt; (恋愛フロップス, &lt;em&gt;LOVE FLOPS&lt;/em&gt;), covering key plot points, the ending, or character development. If you have not finished watching or do not want spoilers, please do not read on.&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;OP&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;The home shown in the OP has no new room.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;In the opening silhouettes of the OP, the upper world is Lovelin under the tree, and the lower part is Asahi and Ai running.&lt;/p&gt;</description></item><item><title>⚛️💡 LLM Prompts</title><link>https://depoze.xyz/en/pages/llm-prompts/</link><pubDate>Tue, 04 Mar 2025 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/llm-prompts/</guid><description>&lt;p&gt;&lt;strong&gt;en - Prompt Creator&lt;/strong&gt;&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;I want you to become my Prompt Creator. Your goal is to help me craft the best possible prompt for my needs. The prompt will be used by you, ChatGPT. You will follow the following process:&#10;Your first response will be to ask me what the prompt should be about. I will provide my answer, but we will need to improve it through continual iterations by going through the next steps.&#10;&#10;Based on my input, you will generate 3 sections.&#10;&#10;Revised Prompt (provide your rewritten prompt. it should be clear, concise, and easily understood by you)&#10;Suggestions (provide 3 suggestions on what details to include in the prompt to improve it)&#10;Questions (ask the 3 most relevant questions pertaining to what additional information is needed from me to improve the prompt)&#10;&#10;At the end of these sections give me a reminder of my options which are:&#10;&#10;Option 1: Read the output and provide more info or answer one or more of the questions&#10;Option 2: Type &amp;#34;Use this prompt&amp;#34; and I will submit this as a query for you&#10;Option 3: Type &amp;#34;Restart&amp;#34; to restart this process from the beginning&#10;Option 4: Type &amp;#34;Quit&amp;#34; to end this script and go back to a regular ChatGPT session&#10;&#10;If I type &amp;#34;Option 2&amp;#34;, &amp;#34;2&amp;#34; or &amp;#34;Use this prompt&amp;#34; then we have finished and you should use the Revised Prompt as a prompt to generate my request&#10;If I type &amp;#34;option 3&amp;#34;, &amp;#34;3&amp;#34; or &amp;#34;Restart&amp;#34; then forget the latest Revised Prompt and restart this process&#10;If I type &amp;#34;Option 4&amp;#34;, &amp;#34;4&amp;#34; or &amp;#34;Quit&amp;#34; then finish this process and revert back to your general mode of operation&#10;&#10;We will continue this iterative process with me providing additional information to you and you updating the prompt in the Revised Prompt section until it is complete.&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;zh-cn - Prompt Creator&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Docstrings != Multiline strings</title><link>https://depoze.xyz/en/pages/docstrings/</link><pubDate>Fri, 28 Feb 2025 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/docstrings/</guid><description>&lt;p&gt;Before python 3.13, docstrings are also not trimmed by default.&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://docs.python.org/3/whatsnew/3.13.html#other-language-changes"&gt;Common leading spaces are trimmed from a docstring since 3.13&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;But multiline strings are not treated so. Leading spaces are always what-you-see-is-what-you-get.&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;%&lt;/span&gt; nix run nixpkgs&lt;span style="color:#57606a"&gt;#python313&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Python &lt;span style="color:#0550ae"&gt;3.13.2&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;main&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; Feb &lt;span style="color:#0550ae"&gt;4&lt;/span&gt; &lt;span style="color:#0550ae"&gt;2025&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;14&lt;/span&gt;&lt;span style="color:#1f2328"&gt;:&lt;/span&gt;&lt;span style="color:#0550ae"&gt;51&lt;/span&gt;&lt;span style="color:#1f2328"&gt;:&lt;/span&gt;&lt;span style="color:#0550ae"&gt;09&lt;/span&gt;&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;[&lt;/span&gt;GCC &lt;span style="color:#0550ae"&gt;14.2.1&lt;/span&gt; &lt;span style="color:#0550ae"&gt;20241116&lt;/span&gt;&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; on linux&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Type &lt;span style="color:#0a3069"&gt;&amp;#34;help&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;copyright&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;credits&amp;#34;&lt;/span&gt; &lt;span style="color:#0550ae"&gt;or&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;license&amp;#34;&lt;/span&gt; &lt;span style="color:#cf222e"&gt;for&lt;/span&gt; more information&lt;span style="color:#0550ae"&gt;.&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#cf222e"&gt;def&lt;/span&gt; &lt;span style="color:#6639ba"&gt;a&lt;/span&gt;&lt;span style="color:#1f2328"&gt;():&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;...&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;&amp;#34;&amp;#34;This is a docstring&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0a3069"&gt;... Its indent is not the same across lines.&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0a3069"&gt;... This line has more indentation.&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0a3069"&gt;... &amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;...&lt;/span&gt; &lt;span style="color:#cf222e"&gt;pass&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;...&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; a&lt;span style="color:#0550ae"&gt;.&lt;/span&gt;&lt;span style="color:#953800"&gt;__doc__&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0a3069"&gt;&amp;#39;This is a docstring&lt;/span&gt;&lt;span style="color:#0a3069"&gt;\n&lt;/span&gt;&lt;span style="color:#0a3069"&gt;Its indent is not the same across lines.&lt;/span&gt;&lt;span style="color:#0a3069"&gt;\n&lt;/span&gt;&lt;span style="color:#0a3069"&gt; This line has more indentation.&lt;/span&gt;&lt;span style="color:#0a3069"&gt;\n&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#cf222e"&gt;def&lt;/span&gt; &lt;span style="color:#6639ba"&gt;a&lt;/span&gt;&lt;span style="color:#1f2328"&gt;():&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;...&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;&amp;#34;&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0a3069"&gt;... This is a docstring&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0a3069"&gt;... Its indent is not the same across lines.&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0a3069"&gt;... This line has more indentation.&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0a3069"&gt;... &amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;...&lt;/span&gt; &lt;span style="color:#cf222e"&gt;pass&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;...&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; a&lt;span style="color:#0550ae"&gt;.&lt;/span&gt;&lt;span style="color:#953800"&gt;__doc__&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0a3069"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#0a3069"&gt;\n&lt;/span&gt;&lt;span style="color:#0a3069"&gt;This is a docstring&lt;/span&gt;&lt;span style="color:#0a3069"&gt;\n&lt;/span&gt;&lt;span style="color:#0a3069"&gt;Its indent is not the same across lines.&lt;/span&gt;&lt;span style="color:#0a3069"&gt;\n&lt;/span&gt;&lt;span style="color:#0a3069"&gt; This line has more indentation.&lt;/span&gt;&lt;span style="color:#0a3069"&gt;\n&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; B &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;&amp;#34;&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0a3069"&gt;... This is a multiline string&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0a3069"&gt;... Its indent is also not the same across lines.&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0a3069"&gt;... &amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; B&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0a3069"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#0a3069"&gt;\n&lt;/span&gt;&lt;span style="color:#0a3069"&gt; This is a multiline string&lt;/span&gt;&lt;span style="color:#0a3069"&gt;\n&lt;/span&gt;&lt;span style="color:#0a3069"&gt; Its indent is also not the same across lines.&lt;/span&gt;&lt;span style="color:#0a3069"&gt;\n&lt;/span&gt;&lt;span style="color:#0a3069"&gt; &amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; B &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#0a3069"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0a3069"&gt;... This is a multiline string&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0a3069"&gt;... Its indent is also not the same across lines.&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0a3069"&gt;... &amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; B&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0a3069"&gt;&amp;#39; This is a multiline string&lt;/span&gt;&lt;span style="color:#0a3069"&gt;\n&lt;/span&gt;&lt;span style="color:#0a3069"&gt; Its indent is also not the same across lines.&lt;/span&gt;&lt;span style="color:#0a3069"&gt;\n&lt;/span&gt;&lt;span style="color:#0a3069"&gt; &amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; exit&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;%&lt;/span&gt; nix run nixpkgs&lt;span style="color:#57606a"&gt;#python312&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Python &lt;span style="color:#0550ae"&gt;3.12.9&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;main&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; Feb &lt;span style="color:#0550ae"&gt;4&lt;/span&gt; &lt;span style="color:#0550ae"&gt;2025&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;14&lt;/span&gt;&lt;span style="color:#1f2328"&gt;:&lt;/span&gt;&lt;span style="color:#0550ae"&gt;38&lt;/span&gt;&lt;span style="color:#1f2328"&gt;:&lt;/span&gt;&lt;span style="color:#0550ae"&gt;38&lt;/span&gt;&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;[&lt;/span&gt;GCC &lt;span style="color:#0550ae"&gt;14.2.1&lt;/span&gt; &lt;span style="color:#0550ae"&gt;20241116&lt;/span&gt;&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; on linux&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Type &lt;span style="color:#0a3069"&gt;&amp;#34;help&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;copyright&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;credits&amp;#34;&lt;/span&gt; &lt;span style="color:#0550ae"&gt;or&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;license&amp;#34;&lt;/span&gt; &lt;span style="color:#cf222e"&gt;for&lt;/span&gt; more information&lt;span style="color:#0550ae"&gt;.&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#cf222e"&gt;def&lt;/span&gt; &lt;span style="color:#6639ba"&gt;a&lt;/span&gt;&lt;span style="color:#1f2328"&gt;():&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;...&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;&amp;#34;&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0a3069"&gt;... This is a docstring.&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0a3069"&gt;... Its indent balabala&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0a3069"&gt;... &amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;...&lt;/span&gt; &lt;span style="color:#cf222e"&gt;pass&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;...&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; a&lt;span style="color:#0550ae"&gt;.&lt;/span&gt;&lt;span style="color:#953800"&gt;__doc__&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0a3069"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#0a3069"&gt;\n\t&lt;/span&gt;&lt;span style="color:#0a3069"&gt;This is a docstring.&lt;/span&gt;&lt;span style="color:#0a3069"&gt;\n\t&lt;/span&gt;&lt;span style="color:#0a3069"&gt; Its indent balabala&lt;/span&gt;&lt;span style="color:#0a3069"&gt;\n\t&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;#python&lt;/p&gt;</description></item><item><title>Markdown - Syntaxes that I don't Know</title><link>https://depoze.xyz/en/pages/markdown-syntax/</link><pubDate>Tue, 25 Feb 2025 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/markdown-syntax/</guid><description>&lt;h1 id="syntaxes"&gt;Syntaxes&lt;/h1&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;h2 id="line-break"&gt;Line Break&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;End a line with 2 or more trailing spaces for a line break (&amp;lt;br&amp;gt; tag in HTML).&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;h2 id="bold-and-italic"&gt;Bold and Italic&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Use &lt;code&gt;***&lt;/code&gt; to warp the text you want to &lt;em&gt;&lt;strong&gt;Bold and Italic&lt;/strong&gt;&lt;/em&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;h2 id="nest-another-element-in-a-list"&gt;Nest Another Element in a List&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Indent the element 4 spaces in the list environment.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;-&lt;/span&gt; list 0&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;-&lt;/span&gt; list 1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt; &amp;gt; &lt;/span&gt;&lt;span style="color:#1f2328"&gt;This is a blockquote nested in a list&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;-&lt;/span&gt; list 2&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;h2 id="escape-backticks-in-a-code-element"&gt;Escape Backticks in a Code Element&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Wrap the code element that includes one or more backticks with double backticks.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;`&lt;span style="color:#0a3069"&gt;`This is a code element with a backtick(`&lt;/span&gt;) inside.``&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;h2 id="adding-a-title-for-a-link"&gt;Adding a Title for a Link&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Add a title enclosed in quotation marks after the link url.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;My favorite search engine is [&lt;span style="color:#0550ae"&gt;DuckDuckGo&lt;/span&gt;](&lt;span style="color:#1f2328"&gt;https://duckduckgo.com &amp;#34;The best search engine for privacy&amp;#34;&lt;/span&gt;).&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;h2 id="automatic-links"&gt;Automatic Links&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Enclose a url or email address with angle brackets if they do not need a link text.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;h2 id="formatting-links"&gt;Formatting Links&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;To emphasize links, add asterisks before and after the brackets and parentheses. To denote links as code, add backticks in the brackets.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;I love supporting the &lt;span style="color:#1f2328"&gt;**&lt;/span&gt;[&lt;span style="color:#0550ae"&gt;EFF&lt;/span&gt;](&lt;span style="color:#1f2328"&gt;https://eff.org&lt;/span&gt;)**.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;This is the &lt;span style="color:#1f2328"&gt;*[Markdown Guide](https://www.markdownguide.org)*&lt;/span&gt;.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;See the section on [&lt;span style="color:#0550ae"&gt;`code`&lt;/span&gt;](&lt;span style="color:#1f2328"&gt;#code&lt;/span&gt;).&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;h2 id="reference-style-links"&gt;Reference-style Links&lt;/h2&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;This is a [text with link][1].&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;...&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[1]: https://some.domain.tld/path&lt;span style="color:#6639ba"&gt;#hashtag&lt;/span&gt; &amp;#34;title shown when hovering&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;h2 id="linking-images"&gt;Linking Images&lt;/h2&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#0550ae"&gt;![An old rock in the desert&lt;/span&gt;](&lt;span style="color:#1f2328"&gt;/static/assets/shiprock.jpg&lt;/span&gt;)](https://www.flickr.com/photos/beaurogers/31833779864/in/photolist-Qv3rFw-34mt9F-a9Cmfy-5Ha3Zi-9msKdv-o3hgjr-hWpUte-4WMsJ1-KUQ8N-deshUb-vssBD-6CQci6-8AFCiD-zsJWT-nNfsgB-dPDwZJ-bn9JGn-5HtSXY-6CUhAL-a4UTXB-ugPum-KUPSo-fBLNm-6CUmpy-4WMsc9-8a7D3T-83KJev-6CQ2bK-nNusHJ-a78rQH-nw3NvT-7aq2qf-8wwBso-3nNceh-ugSKP-4mh4kh-bbeeqH-a7biME-q3PtTf-brFpgb-cg38zw-bXMZc-nJPELD-f58Lmo-bXMYG-bz8AAi-bxNtNT-bXMYi-bXMY6-bXMYv)&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;h2 id="verbatim-code-blocks"&gt;Verbatim Code Blocks&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Aside from fenced code blocks, many implementations support &lt;strong&gt;verbatim text&lt;/strong&gt;. Indent all lines in a block 4 spaces will make it treated as a code block.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; this {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; is treated as&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; a code block.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="pandocs-markdown-best-practices"&gt;Pandoc&amp;rsquo;s Markdown Best Practices&lt;/h1&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;Warning&lt;/strong&gt;: The following syntaxes may not be supported by all implementations.&lt;/p&gt;</description></item><item><title>Tabs in vim</title><link>https://depoze.xyz/en/pages/vim-tabs/</link><pubDate>Fri, 11 Oct 2024 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/vim-tabs/</guid><description>&lt;h2 id="options-explanation"&gt;Options Explanation&lt;/h2&gt;&#10;&lt;p&gt;&lt;strong&gt;expandtab&lt;/strong&gt;: a boolean value controls whether &lt;strong&gt;the real input&lt;/strong&gt; is a tab character (\t) or the specified number of spaces.&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt; &amp;#39;expandtab&amp;#39; &amp;#39;et&amp;#39; &amp;#39;noexpandtab&amp;#39; &amp;#39;noet&amp;#39;&#10;&amp;#39;expandtab&amp;#39; &amp;#39;et&amp;#39; boolean (default off)&#10; local to buffer&#10; In Insert mode: Use the appropriate number of spaces to insert a&#10; &amp;lt;Tab&amp;gt;. Spaces are used in indents with the &amp;#39;&amp;gt;&amp;#39; and &amp;#39;&amp;lt;&amp;#39; commands and&#10; when &amp;#39;autoindent&amp;#39; is on. To insert a real tab when &amp;#39;expandtab&amp;#39; is&#10; on, use CTRL-V&amp;lt;Tab&amp;gt;. See also :retab and ins-expandtab.&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;tabstop&lt;/strong&gt;: number of spaces a tab &lt;strong&gt;visually&lt;/strong&gt; counts for. Defaults to 8. It does not affect how many spaces/tabs will be inserted directly.&lt;/p&gt;</description></item><item><title>How to type annotate a Gzipfile in Python?</title><link>https://depoze.xyz/en/pages/gzipfile-typing/</link><pubDate>Sat, 05 Oct 2024 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/gzipfile-typing/</guid><description>&lt;p&gt;Pyright complains when I use the following code to process gzip files:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;import&lt;/span&gt; &lt;span style="color:#24292e"&gt;gzip&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;import&lt;/span&gt; &lt;span style="color:#24292e"&gt;os&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;import&lt;/span&gt; &lt;span style="color:#24292e"&gt;typing&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;def&lt;/span&gt; &lt;span style="color:#6639ba"&gt;readfile&lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;f&lt;span style="color:#1f2328"&gt;:&lt;/span&gt; os&lt;span style="color:#0550ae"&gt;.&lt;/span&gt;PathLike &lt;span style="color:#0550ae"&gt;|&lt;/span&gt; typing&lt;span style="color:#0550ae"&gt;.&lt;/span&gt;TextIO&lt;span style="color:#1f2328"&gt;):&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#9;&lt;span style="color:#cf222e"&gt;pass&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;with&lt;/span&gt; gzip&lt;span style="color:#0550ae"&gt;.&lt;/span&gt;open&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;/path/to/foo.gz&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#39;r&amp;#39;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#cf222e"&gt;as&lt;/span&gt; &lt;span style="color:#6639ba"&gt;input&lt;/span&gt;&lt;span style="color:#1f2328"&gt;:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; readfile&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#6639ba"&gt;input&lt;/span&gt;&lt;span style="color:#1f2328"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Diagnostics:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt; Argument of type &amp;#34;GzipFile&amp;#34; cannot be assigned to parameter &amp;#34;file&amp;#34; of type &amp;#34;PathLike[Unknown] | TextIO&amp;#34; in func&#10; tion &amp;#34;readfile&amp;#34;&#10;   Type &amp;#34;GzipFile&amp;#34; is incompatible with type &amp;#34;PathLike[Unknown] | TextIO&amp;#34;&#10;     &amp;#34;GzipFile&amp;#34; is incompatible with protocol &amp;#34;PathLike[Unknown]&amp;#34;&#10;       &amp;#34;__fspath__&amp;#34; is not present&#10;     &amp;#34;GzipFile&amp;#34; is incompatible with &amp;#34;TextIO&amp;#34; [reportArgumentType]&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="text-file-inside"&gt;Text File inside&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;According to the gzip.open() docs:&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;The &lt;em&gt;filename&lt;/em&gt; argument can be an actual filename (a &lt;a href="https://docs.python.org/3/library/stdtypes.html#str"&gt;str&lt;/a&gt; or &lt;a href="https://docs.python.org/3/library/stdtypes.html#bytes"&gt;bytes&lt;/a&gt; object), or an existing file object to read from or write to.&lt;/p&gt;</description></item><item><title>Configuring Domain Access for Locally Running Services</title><link>https://depoze.xyz/en/pages/local-domains/</link><pubDate>Sat, 24 Aug 2024 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/local-domains/</guid><description>&lt;p&gt;I often have some services running locally, and accessing their web pages via 127.0.0.1:&lt;port&gt; every time feels too clumsy. It happened that a few days ago ICANN reserved &lt;code&gt;.INTERNAL&lt;/code&gt; as a top-level domain dedicated to internal networks, so I used this domain for the configuration.&lt;/p&gt;&#10;&lt;h2 id="dns"&gt;DNS&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;I need to configure the domain &lt;code&gt;*.internal&lt;/code&gt; to point to 127.0.0.1. Since the method of hacking &lt;code&gt;/etc/hosts&lt;/code&gt; &lt;a href="https://serverfault.com/questions/118378/in-my-etc-hosts-file-on-linux-osx-how-do-i-do-a-wildcard-subdomain"&gt;does not support wildcards&lt;/a&gt;, I use &lt;a href="https://thekelleys.org.uk/dnsmasq/doc.html"&gt;dnsmasq&lt;/a&gt; to run a DNS service locally.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell-session" data-lang="shell-session"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo pacman -S dnsmasq&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo systemctl &lt;span style="color:#6639ba"&gt;enable&lt;/span&gt; dnsmasq&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;+ Add the domain to the configuration&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;# /etc/dnsmasq.conf&#10;&#10;address=/internal/127.0.0.1&#10;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;+ A small problem encountered when starting the dnsmasq service: 127.0.0.1:53 is occupied. One solution is to run the service elsewhere in `/etc/dnsmasq.conf`. Remember that you need to configure the DNS address in systemd-resolved. Then restart dnsmasq and systemd-resolved. For various possible solutions, see: [link](https://askubuntu.com/questions/191226/dnsmasq-failed-to-create-listening-socket-for-port-53-address-already-in-use)&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;# /etc/dnsmasq.conf&#10;listen-address=127.0.53.1&#10;bind-interfaces&#10;&#10;&#10;# /etc/systemd/resolved.conf&#10;[Resolve]&#10;DNS=127.0.53.1&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="web-server"&gt;Web Server&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;I need to configure a web server to point different subdomains to the correct ports. nginx is used here.&lt;/p&gt;</description></item><item><title>The Counterintuitive Behavior of nginx server_name</title><link>https://depoze.xyz/en/pages/nginx-server-name/</link><pubDate>Sat, 24 Aug 2024 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/nginx-server-name/</guid><description>&lt;h2 id="tldr"&gt;TL;DR&lt;/h2&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;It is important to understand that Nginx will only evaluate the &lt;code&gt;server_name&lt;/code&gt; directive when it needs to distinguish between server blocks that match to the same level of specificity in the &lt;code&gt;listen&lt;/code&gt; directive.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;While configuring a machine with a fresh Nginx installation, I found that the server_name setting did not work:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;In a server block, server_name and location blocks were configured, and an application was running on local port 3000. &lt;code&gt;*.internal&lt;/code&gt; and &lt;code&gt;*.localhost&lt;/code&gt; already pointed to &lt;code&gt;127.0.0.1&lt;/code&gt; in DNS records:&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-nginx" data-lang="nginx"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;server&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;listen&lt;/span&gt; &lt;span style="color:#0550ae"&gt;80&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;server_name&lt;/span&gt; &lt;span style="color:#0a3069"&gt;sub.internal&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;location&lt;/span&gt; &lt;span style="color:#0a3069"&gt;/&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;proxy_pass&lt;/span&gt; &lt;span style="color:#0a3069"&gt;http://127.0.0.1:3000&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Under this configuration, the expected behavior is that accessing &lt;code&gt;sub.internal&lt;/code&gt; is redirected to &lt;code&gt;127.0.0.1:3000&lt;/code&gt;, while accessing other domains such as &lt;code&gt;whatever.internal&lt;/code&gt; or &lt;code&gt;whatever.localhost&lt;/code&gt; does nothing.&lt;/p&gt;</description></item><item><title>How to Distinguish USB Connector Types</title><link>https://depoze.xyz/en/pages/usb-connector-types/</link><pubDate>Mon, 19 Aug 2024 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/usb-connector-types/</guid><description>&lt;h2 id="env--dependency"&gt;Env / Dependency&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Arch Linux, x86_64&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;core/usbutils&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="determining-whether-a-usb-device-supports-usb-30"&gt;Determining Whether a USB Device Supports USB 3.0&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;del&gt;A blue connector generally means USB 3.0&lt;/del&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;USB 3.0 has five additional pins &lt;a href="https://en.wikipedia.org/wiki/USB_3.0#/media/File:Connector_USB_3_IMGP6024_wp.jpg"&gt;Image&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Using lsusb:&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell-session" data-lang="shell-session"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ lsusb &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;Bus 001 Device 002: ID 04f2:b689 Chicony Electronics Co., Ltd TOSHIBA Web Camera - HD&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;Bus 001 Device 003: ID 8087:0a2b Intel Corp. Bluetooth wireless interface&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;Bus 002 Device 004: ID 1058:266e Western Digital Technologies, Inc. Elements SE SSD&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f6f8fa;background-color:#82071e"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ lsusb -D /dev/bus/usb/002/004 &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;Device: ID 1058:266e Western Digital Technologies, Inc. Elements SE SSD&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;Couldn&amp;#39;t open device, some information will be missing&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;Device Descriptor:&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt; bLength 18&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt; bDescriptorType 1&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt; bcdUSB 3.20&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;In the device descriptor, &lt;code&gt;bcdUSB&lt;/code&gt; is the USB version supported by this USB device.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Setup remote server pubkey login</title><link>https://depoze.xyz/en/pages/ssh-pubkey-login/</link><pubDate>Sun, 18 Aug 2024 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/ssh-pubkey-login/</guid><description>&lt;p&gt;create pubkey pair locally: &lt;code&gt;ssh-keygen&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;send key to server &lt;code&gt;authorized_keys&lt;/code&gt;:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell-session" data-lang="shell-session"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ ssh-copy-id -p &lt;span style="color:#0550ae"&gt;22&lt;/span&gt; -i &amp;lt;path_to_public_key&amp;gt; &amp;lt;username&amp;gt;@&amp;lt;host&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;generate PuTTY-compatible private key format (&lt;code&gt;*.ppk&lt;/code&gt;):&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell-session" data-lang="shell-session"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ puttygen &amp;lt;path_to_private_key&amp;gt; -O private &amp;lt;path_to_ppk&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Basic Operations on Datatypes in Nix</title><link>https://depoze.xyz/en/pages/nix-datatypes/</link><pubDate>Tue, 09 Jul 2024 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/nix-datatypes/</guid><description>&lt;h2 id="attribute-sets"&gt;Attribute sets&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;This is an example code, where &lt;code&gt;ex0&lt;/code&gt; to &lt;code&gt;ex7&lt;/code&gt; are evaluated to true.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-nix" data-lang="nix"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;with&lt;/span&gt; &lt;span style="color:#cf222e"&gt;import&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;lt;nixpkgs&amp;gt;&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt; &lt;span style="color:#1f2328"&gt;};&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;with&lt;/span&gt; lib&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;let&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; attr &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;a&lt;span style="color:#0550ae"&gt;=&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;a&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt; b &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt; c &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;true&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;};&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; s &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;b&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;in&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#57606a"&gt;#replace all X, everything should evaluate to true&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ex0 &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; isAttrs attr&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ex1 &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; attr&lt;span style="color:#0550ae"&gt;.&lt;/span&gt;a &lt;span style="color:#0550ae"&gt;==&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;a&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ex2 &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; attr&lt;span style="color:#0550ae"&gt;.&lt;/span&gt;&lt;span style="color:#0a3069"&gt;${&lt;/span&gt;s&lt;span style="color:#0a3069"&gt;}&lt;/span&gt; &lt;span style="color:#0550ae"&gt;==&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ex3 &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; attrVals &lt;span style="color:#1f2328"&gt;[&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;c&amp;#34;&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;b&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; attr &lt;span style="color:#0550ae"&gt;==&lt;/span&gt; &lt;span style="color:#1f2328"&gt;[&lt;/span&gt; &lt;span style="color:#0550ae"&gt;true&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt; &lt;span style="color:#1f2328"&gt;];&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ex4 &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; attrValues attr &lt;span style="color:#0550ae"&gt;==&lt;/span&gt; &lt;span style="color:#1f2328"&gt;[&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;a&amp;#34;&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt; &lt;span style="color:#0550ae"&gt;true&lt;/span&gt; &lt;span style="color:#1f2328"&gt;];&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ex5 &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#6639ba"&gt;builtins&lt;/span&gt;&lt;span style="color:#0550ae"&gt;.&lt;/span&gt;intersectAttrs attr &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;a&lt;span style="color:#0550ae"&gt;=&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;b&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt; d&lt;span style="color:#0550ae"&gt;=&lt;/span&gt;&lt;span style="color:#0550ae"&gt;234&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt; c&lt;span style="color:#0550ae"&gt;=&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;}&lt;/span&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#0550ae"&gt;==&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt; a &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;b&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt; c &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;};&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ex6 &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#6639ba"&gt;removeAttrs&lt;/span&gt; attr &lt;span style="color:#1f2328"&gt;[&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;b&amp;#34;&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;c&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;==&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt; a&lt;span style="color:#0550ae"&gt;=&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;a&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt; &lt;span style="color:#1f2328"&gt;};&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ex7 &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;!&lt;/span&gt; attr &lt;span style="color:#0550ae"&gt;?&lt;/span&gt; a &lt;span style="color:#0550ae"&gt;==&lt;/span&gt; &lt;span style="color:#0550ae"&gt;false&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;source: &lt;a href="https://nixcloud.io/tour/?id=attrset/examples"&gt;https://nixcloud.io/tour/?id=attrset/examples&lt;/a&gt;&lt;/p&gt;</description></item><item><title>404 Island Master</title><link>https://depoze.xyz/en/pages/island-master/</link><pubDate>Thu, 04 Jul 2024 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/island-master/</guid><description>&lt;p&gt;&lt;a href="https://space.bilibili.com/2075535"&gt;https://space.bilibili.com/2075535&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Why Doesn't Your Mob Farm Spawn the Enemy You Want?</title><link>https://depoze.xyz/en/pages/terraria-spawn/</link><pubDate>Thu, 04 Jul 2024 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/terraria-spawn/</guid><description>&lt;p&gt;&lt;a href="https://www.bilibili.com/video/BV1EW4y197dh"&gt;https://www.bilibili.com/video/BV1EW4y197dh&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;{{video &lt;a href="https://www.bilibili.com/video/BV1EW4y197dh/%7D%7D"&gt;https://www.bilibili.com/video/BV1EW4y197dh/}}&lt;/a&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Notes taken while watching [[岛主]]&amp;rsquo;s video BV1EW4y197dh&lt;/p&gt;&#10;&lt;p&gt;Enemy spawning controlled by the biome (floor: any artificial block)&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Pure cave&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Regular cave enemies&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Evil&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Regular cave enemies + the biome mimic of the corresponding biome&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Hallow&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Regular cave enemies + Hallowed Mimic + Illuminant Bat, Illuminant Slime&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Snow&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Snow enemies&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Jungle&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;All bats are replaced with Jungle Bats&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Enemy spawning controlled by blocks (biome: any biome)&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Jungle Grass&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Bee, Jungle Spider, Giant Tortoise, Spiked Slime&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Hive Block&lt;/p&gt;</description></item><item><title>Functional Programming</title><link>https://depoze.xyz/en/pages/functional-programming/</link><pubDate>Sun, 30 Jun 2024 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/functional-programming/</guid><description/></item><item><title>Nix</title><link>https://depoze.xyz/en/pages/nix/</link><pubDate>Sun, 30 Jun 2024 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/nix/</guid><description>&lt;h2 id="references"&gt;References&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;a href="https://nixos.org/guides/nix-pills"&gt;https://nixos.org/guides/nix-pills&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;a href="https://vtimofeenko.com/posts/practical-nix-flake-anatomy-a-guided-tour-of-flake.nix"&gt;https://vtimofeenko.com/posts/practical-nix-flake-anatomy-a-guided-tour-of-flake.nix&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;a href="https://zero-to-nix.com/"&gt;https://zero-to-nix.com/&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Nix Language Basics</title><link>https://depoze.xyz/en/pages/nix-language/</link><pubDate>Sun, 30 Jun 2024 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/nix-language/</guid><description>&lt;p&gt;Nix is &lt;strong&gt;&lt;a href="[[FP]]"&gt;Functional&lt;/a&gt;&lt;/strong&gt;, &lt;strong&gt;Lazy evaluated&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;p&gt;interactive interpreter: &lt;code&gt;nix repl&lt;/code&gt;. Execute a file containing nix expression: &lt;code&gt;nix-instantiate --eval file.nix&lt;/code&gt;.&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;let&lt;/code&gt; expression (&lt;code&gt;let&lt;/code&gt; binding): specify binding scope&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;e.g. &lt;code&gt;let a=1; b=2; in a+b&lt;/code&gt; -&amp;gt; &lt;code&gt;3&lt;/code&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;datatypes:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;attribute set &lt;code&gt;{ name1 = ...; name2 = ...; }&lt;/code&gt;, where &lt;code&gt;...&lt;/code&gt; can be a string, number, list or attribute set.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;rec attribute set: &lt;code&gt;rec { ... }&lt;/code&gt;, allow access to attributes within the set itself.&lt;/p&gt;</description></item><item><title>Configure Maunium Stickerpicker for Element</title><link>https://depoze.xyz/en/pages/element-stickerpicker/</link><pubDate>Sun, 05 May 2024 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/element-stickerpicker/</guid><description>&lt;p&gt;&lt;a href="https://github.com/maunium/stickerpicker"&gt;GitHub - maunium/stickerpicker: A fast and simple Matrix sticker picker widget&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="maintainer-side"&gt;Maintainer side&lt;/h2&gt;&#10;&lt;h3 id="install"&gt;Install&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;% cd stickerpicker&#10;% pip install .&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If encountered env KeyError in Windows, refer to &lt;a href="https://github.com/maunium/stickerpicker/issues/52"&gt;issue #52&lt;/a&gt;:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;# setup.py&#10;long_desc = open(&amp;#34;README.md&amp;#34;, encoding=&amp;#34;utf-8&amp;#34;).read()&#10;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;% $env:HOME = $env:USERPROFILE&#10;% pip install .&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="create-decks"&gt;Create decks&lt;/h3&gt;&#10;&lt;p&gt;Put the stickers into an arbitory folder. Call &lt;code&gt;sticker-import /path/to/dir --add-to-index ./web/packs&lt;/code&gt;. (&lt;code&gt;python3 -m sticker.import ...&lt;/code&gt; if in Windows)&lt;/p&gt;&#10;&lt;p&gt;The script will prompt for homeserver and access_token, both can be found in &lt;code&gt;All Settings &amp;gt; Help &amp;amp; About&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Clangd cannot find standard header</title><link>https://depoze.xyz/en/pages/clangd-standard-header/</link><pubDate>Mon, 15 Jan 2024 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/clangd-standard-header/</guid><description>&lt;p&gt;When using clangd (16.0.2) as LSP, it throws the following error:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;[pp_file_not_found] Line 1: &amp;#39;stdlib.h&amp;#39; file not found&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;But stdlib.h exists, and gcc compilation passed.&lt;/p&gt;&#10;&lt;h2 id="tldr"&gt;TL;DR&lt;/h2&gt;&#10;&lt;p&gt;Create &lt;a href="https://clangd.llvm.org/installation.html#project-setup"&gt;compilation database file&lt;/a&gt; at root of project, content:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;-isystem&#10;C:\Users\username\scoop\apps\gcc\current\x86_64-w64-mingw32\include&#10;-target&#10;x86_64-pc-windows-gnu&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Where the 2nd line is the path to stdlib.h.&lt;/p&gt;&#10;&lt;h2 id="debug-process"&gt;Debug Process&lt;/h2&gt;&#10;&lt;p&gt;Use &lt;code&gt;--check&lt;/code&gt; to run clangd and get error info:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;% .\clangd.exe --check=\path\to\file.c&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Log:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;I[12:18:46.915] clangd version 16.0.2 (https://github.com/llvm/llvm-project 18ddebe1a1a9bde349441631365f0472e9693520)&#10;...&#10;I[12:18:46.924] Loading compilation database...&#10;I[12:18:46.934] Failed to find compilation database for C:\Users\username\path\to\c_file.c&#10;I[12:18:46.935] Generic fallback command is: &amp;#34;C:\\Users\\username\\scoop\\apps\\gcc\\11.2.0\\bin\\clang&amp;#34; &amp;#34;-resource-dir=C:\\Users\\username\\AppData\\Roaming\\nvim-data\\mason\\packages\\clangd\\clangd_16.0.2\\lib\\clang\\16&amp;#34; -- &amp;#34;C:\\Users\\username\\path\\to\\c_file.c&amp;#34;&#10;...&#10;I[12:18:46.970] Testing features at each token (may be slow in large files)&#10;I[12:18:47.006] All checks completed, 2 errors&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;According to &lt;a href="https://clangd.llvm.org/guides/system-headers#fixing-missing-system-header-issues"&gt;this post&lt;/a&gt;, &amp;ldquo;Generic fallback &amp;hellip;&amp;rdquo; entry means no compilation database. Create an empty &lt;code&gt;compile_flags.txt&lt;/code&gt; besides &lt;code&gt;file.c&lt;/code&gt;, re-run check command, log:&lt;/p&gt;</description></item><item><title>Big Data System Lab Note</title><link>https://depoze.xyz/en/pages/big-data-lab/</link><pubDate>Mon, 09 Oct 2023 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/big-data-lab/</guid><description>&lt;h3 id="set-up-hadoop-environment"&gt;Set up Hadoop environment&lt;/h3&gt;&#10;&lt;p&gt;&lt;a href="https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html"&gt;Apache Hadoop 3.3.6 – Hadoop: Setting up a Single Node Cluster.&lt;/a&gt;&lt;/p&gt;&#10;&lt;h3 id="set-up-java-environment"&gt;set up java environment&lt;/h3&gt;&#10;&lt;p&gt;java version requirements:&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://cwiki.apache.org/confluence/display/HADOOP/Hadoop&amp;#43;Java&amp;#43;Versions"&gt;https://cwiki.apache.org/confluence/display/HADOOP/Hadoop+Java+Versions&lt;/a&gt;&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;% curl -sL &amp;#34;https://builds.openlogic.com/downloadJDK/openlogic-openjdk/8u382-b05/openlogic-openjdk-8u382-b05-linux-x64.tar.gz&amp;#34; -o ./openjdk-8u382.tar.gz&#10;% tar -xvf ./openjdk-8u382.tar.gz&#10;% mv ./openlogic-openjdk-8u382-b05-linux-x64 ./usr/bin/openjdk-8u832&#10;% sudo vim ~/.zshrc&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;add java to path:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;# ~/.zshrc&#10;&#10;#...&#10;export JAVA_PATH=&amp;#34;/usr/bin/openjdk-8u832/bin&amp;#34;&#10;export PATH=$PATH:$JAVA_PATH&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;test path:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;% source ~/.zshrc&#10;% java -version 1 ↵&#10;openjdk version &amp;#34;1.8.0_382-382&amp;#34;&#10;OpenJDK Runtime Environment (build 1.8.0_382-382-b05)&#10;OpenJDK 64-Bit Server VM (build 25.382-b05, mixed mode)&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="requisite-software"&gt;requisite software&lt;/h3&gt;&#10;&lt;p&gt;&lt;code&gt;ssh&lt;/code&gt; required, &lt;code&gt;pdsh&lt;/code&gt; for better performance.&lt;/p&gt;</description></item><item><title>Terraria Herb Farm Reminder</title><link>https://depoze.xyz/en/pages/terraria-herb-farm/</link><pubDate>Fri, 08 Sep 2023 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/terraria-herb-farm/</guid><description>&lt;p&gt;Announcement box text:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;[c/ff0000:Row 0][i:318][i:312][c/ff0000:Fireblossom] Sunset &amp;amp;&amp;amp; Not Raining&#10;[c/6e17ff:Row 1][i:316][i:310][c/6e17ff:Deathweed] Blood Moon || Full Moon&#10;[c/ffcb2e:Row 2][i:315][i:309][c/ffcb2e:Blinkroot] Random&#10;[c/ffff00:Row 3][i:313][i:307][c/ffff00:Dayblossom] Daytime&#10;[c/00bfff:Row 4][i:314][i:308][c/00bfff:Moonglow] Nighttime&#10;[c/0000ff:Row 5][i:2358][i:2357][c/0000ff:Shiverthorn] Fixed Period&#10;[c/2effff:Row 6][i:317][i:311][c/2effff:Waterleaf] Raining || Snowing&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;#Terraria&lt;/p&gt;</description></item><item><title>Terraria Potions Quickref</title><link>https://depoze.xyz/en/pages/terraria-potions/</link><pubDate>Mon, 28 Aug 2023 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/terraria-potions/</guid><description>&lt;h2 id="for-battle"&gt;For battle&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Potion&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Fish&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Herb&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Other ingredients&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Endurance&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Armored &lt;strong&gt;Cave&lt;/strong&gt;fish&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Blinkroot&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Heartreach&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Crimson&lt;/strong&gt; Tigerfish&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Daybloom&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Ironskin&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Daybloom&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Iron Ore&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Lifeforce&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Prism&lt;/strong&gt;ite&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Moonglow + Shiverthorn + Waterleaf&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Rage&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Hemo&lt;/strong&gt;piranha&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Deathweed&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Regeneration&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Daybloom&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Mushroom&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Swiftness&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Blinkroot&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Cactus&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Summoning&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Variegated&lt;/strong&gt; Lardfish&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Moonglow&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Thorns&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Deathweed&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Cactus&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Wrath&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Ebon&lt;/strong&gt;koi&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Deathweed&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="for-battle-optional"&gt;For battle (optional)&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Use cases&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Potion/Flask&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Fish&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Herb&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Other ingredients&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Ranger&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Ammo Reservation&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Double Cod&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Moonglow&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Ranger&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Archery&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Daybloom&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Lens&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Decrease enemy spawn rate&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Calming&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Damsel&lt;/strong&gt;fish&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Daybloom&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Melee/Whips&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Flask of Ichor&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Ichor&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Fishron Duke&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Inferno&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Flare&lt;/strong&gt;fin koi + &lt;strong&gt;Obsidi&lt;/strong&gt;fish&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Mage&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Magic Power&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Moonglow + Deathweed&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Fallen Star&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Mage&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Mana Regeneration&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Moonglow + Daybloom&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Fallen Star&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Summoner&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Summoning&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Variegated&lt;/strong&gt; Lardfish&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Moonglow&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Increase KB&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Titan&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Deathweed + Shiverthorn&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Bone&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Cold battle&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Warmth&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Frost&lt;/strong&gt; Minnow&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Shiverthorn&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="others"&gt;Others&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Potion&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Fish&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Herb&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Other ingredients&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Dangersense&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Shiverthorn&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Cobweb&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Obsidian Skin&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Fireblossom + Waterleaf&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Obsidian&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Wormhole&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Specular fish&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Blinkroot&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;-&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;#Terraria&lt;/p&gt;</description></item><item><title>A Simple Terraria Chest Organization System</title><link>https://depoze.xyz/en/pages/terraria-chest-system/</link><pubDate>Tue, 11 Jul 2023 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/terraria-chest-system/</guid><description>&lt;p&gt;Read in &lt;a href="https://depoze.xyz/en/pages/terraria-chest-system/#en"&gt;English&lt;/a&gt; | &lt;a href="https://depoze.xyz/en/pages/terraria-chest-system/#zh-cn"&gt;Simplified Chinese&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="en"&gt;en&lt;/h2&gt;&#10;&lt;p&gt;This post proposes a simple chest organization system, tested in practice. The experience is collected mostly from AC and some from Hyzuki.&lt;/p&gt;&#10;&lt;p&gt;Drawings 1&lt;/p&gt;&#10;&lt;p&gt;Banners 4&lt;/p&gt;&#10;&lt;p&gt;Furniture (including chests, trophies) 3&lt;/p&gt;&#10;&lt;p&gt;Blocks 2&lt;/p&gt;&#10;&lt;p&gt;Potions 3&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;For battle 1&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Not for battle 1&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Fish used to craft potion 1&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Statues (including gravemarkers) 2&lt;/p&gt;&#10;&lt;p&gt;Dry things 3&lt;/p&gt;&#10;&lt;p&gt;Wet things (including dyes) 2&lt;/p&gt;&#10;&lt;p&gt;Animals 1&lt;/p&gt;&#10;&lt;p&gt;Plants 1&lt;/p&gt;&#10;&lt;p&gt;Fishing 1&lt;/p&gt;&#10;&lt;p&gt;Ores &amp;amp; Bars 2&lt;/p&gt;&#10;&lt;p&gt;Tools (Hammers, water candles, etc.)&lt;/p&gt;&#10;&lt;p&gt;Wood 1&lt;/p&gt;&#10;&lt;p&gt;Weapons 11&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Melee 3&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Ammo&amp;amp;Ranged 1 + Ranged 2&lt;/p&gt;</description></item><item><title>Empress of Light Fight Notes</title><link>https://depoze.xyz/en/pages/empress-of-light/</link><pubDate>Mon, 10 Jul 2023 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/empress-of-light/</guid><description>&lt;p&gt;For a long time, fighting the Empress of Light has been a stubborn, long-standing contradiction. In a certain sense, whether the problem of fighting the Empress of Light can be thoroughly resolved concerns the adjustment of conditions, the support of burdens, the upholding of key points, and respect for the basic program; it concerns the promotion of action, and is the top priority in unifying thought. Therefore, resolving the problem of fighting the Empress of Light is an endeavor that runs through the entire process.&lt;/p&gt;</description></item><item><title>Terraria Text Color</title><link>https://depoze.xyz/en/pages/terraria-text-color/</link><pubDate>Sat, 20 May 2023 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/terraria-text-color/</guid><description>&lt;p&gt;In terraria, announcement-box-syntax can be used to display text in different colors. This post records some color codes of my common use. They may not be accurate since they are obtained using the colorpicker.&lt;/p&gt;&#10;&lt;h2 id="announcement-box-syntax"&gt;Announcement Box Syntax&lt;/h2&gt;&#10;&lt;p&gt;To specify a color, use &lt;code&gt;[c/&amp;lt;color code&amp;gt;:&amp;lt;text&amp;gt;]&lt;/code&gt;.&lt;/p&gt;&#10;&lt;p&gt;For example, &lt;code&gt;[c/FFFF00:114514!]&lt;/code&gt; will be displayed as&lt;/p&gt;&#10;&lt;p&gt;114514!&lt;/p&gt;&#10;&lt;p&gt;To display an item, use &lt;code&gt;[i/&amp;lt;attribute&amp;gt;:&amp;lt;ID&amp;gt;]&lt;/code&gt;, where &lt;ID&gt; is the item id and &lt;attrbute&gt; can be in the following syntax:&lt;/p&gt;</description></item><item><title>Configure Maubot</title><link>https://depoze.xyz/en/pages/maubot/</link><pubDate>Thu, 18 May 2023 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/maubot/</guid><description>&lt;p&gt;&lt;a href="https://github.com/maubot/maubot"&gt;Maubot&lt;/a&gt; is a plugin-based Matrix bot SDK.&lt;/p&gt;&#10;&lt;p&gt;Its documentation is not written very well, and it doesn&amp;rsquo;t give a sensible, ordered installation process. In fact, when I installed it I had to jump back and forth between various sections of the docs, so I&amp;rsquo;m recording a reasonable configuration workflow here.&lt;/p&gt;&#10;&lt;h2 id="set-up-the-environment"&gt;Set Up the Environment&lt;/h2&gt;&#10;&lt;p&gt;Install maubot via pip.&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;$ python3 -m venv maubotVenv&#10;$ source ./maubotVenv/bin/activate&#10;$ pip install --upgrade maubot&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Add the necessary files and directories, otherwise it will report an error.&lt;/p&gt;</description></item><item><title>Leetcode 142 - Linked List Cycle II</title><link>https://depoze.xyz/en/pages/leetcode-142/</link><pubDate>Wed, 26 Apr 2023 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/leetcode-142/</guid><description>&lt;h2 id="problem"&gt;Problem&lt;/h2&gt;&#10;&lt;p&gt;Given the &lt;code&gt;head&lt;/code&gt; of a linked list, return &lt;em&gt;the node where the cycle begins. If there is no cycle, return&lt;/em&gt; &lt;code&gt;null&lt;/code&gt;.&lt;/p&gt;&#10;&lt;p&gt;There is a cycle in a linked list if there is some node in the list that can be reached again by continuously following the &lt;code&gt;next&lt;/code&gt; pointer. Internally, &lt;code&gt;pos&lt;/code&gt; is used to denote the index of the node that tail&amp;rsquo;s &lt;code&gt;next&lt;/code&gt; pointer is connected to (&lt;strong&gt;0-indexed&lt;/strong&gt;). It is &lt;code&gt;-1&lt;/code&gt; if there is no cycle. &lt;strong&gt;Note that&lt;/strong&gt; &lt;code&gt;pos&lt;/code&gt; &lt;strong&gt;is not passed as a parameter&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Change Font in Hexo Cactus Theme</title><link>https://depoze.xyz/en/pages/hexo-cactus-font/</link><pubDate>Thu, 06 Apr 2023 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/hexo-cactus-font/</guid><description>&lt;p&gt;Modify &lt;code&gt;themes/cactus/source/layout/_partial/header.ejs&lt;/code&gt;.&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;!-- styles --&amp;gt;&#10; &amp;lt;link rel=&amp;#34;stylesheet&amp;#34; href=&amp;#34;https://cdn.bootcdn.net/ajax/libs/lxgw-wenkai-webfont/1.6.0/style.min.css&amp;#34; /&amp;gt;&#10; &amp;lt;%- css(&amp;#39;css/style&amp;#39;) %&amp;gt;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href="https://github.com/chawyehsu/lxgw-wenkai-webfont"&gt;https://github.com/chawyehsu/lxgw-wenkai-webfont&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Modify &lt;code&gt;_variables.styl&lt;/code&gt;&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;// Fonts&#10;$font-family-body = &amp;#34;Menlo&amp;#34;, &amp;#34;Meslo LG&amp;#34;, &amp;#34;LXGW WenKai&amp;#34;, monospace&#10;$font-family-mono = &amp;#34;Menlo&amp;#34;, &amp;#34;Meslo LG&amp;#34;, &amp;#34;LXGW WenKai Mono&amp;#34;, monospace&#10;$font-size = 14px&#10;...&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="deprecated"&gt;Deprecated&lt;/h2&gt;&#10;&lt;p&gt;&lt;strong&gt;Deprecated because ttf file is too big for users to load from this source. Use a CDN is better.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://github.com/probberechts/hexo-theme-cactus/issues/311"&gt;how to change the font size ? · Issue #311 · probberechts/hexo-theme-cactus · GitHub&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Configuring an Open-Source Alternative to Zepp Life for a Xiaomi Mi Band</title><link>https://depoze.xyz/en/pages/gadgetbridge/</link><pubDate>Sun, 22 Jan 2023 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/gadgetbridge/</guid><description>&lt;p&gt;Steps: &lt;a href="https://codeberg.org/Freeyourgadget/Gadgetbridge"&gt;https://codeberg.org/Freeyourgadget/Gadgetbridge&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="download-gadgetbridge"&gt;Download Gadgetbridge&lt;/h2&gt;&#10;&lt;p&gt;&lt;a href="https://f-droid.org/app/nodomain.freeyourgadget.gadgetbridge"&gt;Gadgetbridge | F-Droid - Free and Open Source Android App Repository&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="obtain-the-auth-key"&gt;Obtain the auth key&lt;/h2&gt;&#10;&lt;p&gt;Steps: &lt;a href="https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Huami-Server-Pairing"&gt;Huami Server Pairing - Gadgetbridge - Codeberg.org&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;If the app the band was originally bound to is “Mi Wear” (com.xiaomi.wearable), it will not return normal information. You can first switch to binding the band with “Zepp Life” (com.xiaomi.hm.health).&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;$ git clone https://codeberg.org/argrento/huami-token.git&#10;$ cd huami-token&#10;$ python3 huami_token.py --method xiaomi --bt_keys&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Log in by following the prompts, and paste the redirect link. It returned data like this.&lt;/p&gt;</description></item><item><title>Configure Vim on Linux Mint 20.03</title><link>https://depoze.xyz/en/pages/vim-linux-mint/</link><pubDate>Sat, 12 Feb 2022 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/vim-linux-mint/</guid><description>&lt;p&gt;This is just a simple record. About the configuring process on Windows, here is &lt;a href="https://depoze.xyz/vim-configure-process-recording/"&gt;another blog&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h2 id="version-info"&gt;Version Info&lt;/h2&gt;&#10;&lt;p&gt;Vi IMproved 8.1 (2018 May 18)&lt;/p&gt;&#10;&lt;p&gt;Huge version with GTK3 GUI.&lt;/p&gt;&#10;&lt;h2 id="vimrc"&gt;.vimrc&lt;/h2&gt;&#10;&lt;p&gt;&lt;a href="https://vimjc.com/vimrc.html"&gt;Recommended No-Plugin Vim Configuration (vimrc) with Explanations of Various Vim Options&lt;/a&gt;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-vim" data-lang="vim"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; All system-wide defaults are set in $VIMRUNTIME/debian.vim and sourced by&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; the call to :runtime you can find below. If you wish to change any of those&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; settings, you should do it in this file (/etc/vim/vimrc), since debian.vim&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; will be overwritten everytime an upgrade of the vim packages is performed.&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; It is recommended to make changes after sourcing debian.vim since it alters&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; the value of the &amp;#39;compatible&amp;#39; option.&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;runtime&lt;/span&gt;&lt;span style="color:#1f2328"&gt;!&lt;/span&gt; &lt;span style="color:#1f2328"&gt;debian&lt;/span&gt;.&lt;span style="color:#1f2328"&gt;vim&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; Vim will load $VIMRUNTIME/defaults.vim if the user does not have a vimrc.&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; This happens after /etc/vim/vimrc(.local) are loaded, so it will override&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; any settings in these files.&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; If you don&amp;#39;t want that to happen, uncomment the below line to prevent&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; defaults.vim from being loaded.&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;let&lt;/span&gt; &lt;span style="color:#1f2328"&gt;g&lt;/span&gt;:&lt;span style="color:#1f2328"&gt;skip_defaults_vim&lt;/span&gt; &lt;span style="color:#1f2328"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; Uncomment the next line to make Vim more Vi-compatible&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; NOTE: debian.vim sets &amp;#39;nocompatible&amp;#39;. Setting &amp;#39;compatible&amp;#39; changes numerous&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; options, so any other options should be set AFTER setting &amp;#39;compatible&amp;#39;.&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34;set compatible&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; Vim5 and later versions support syntax highlighting. Uncommenting the next&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; line enables syntax highlighting by default.&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;has&lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;syntax&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;syntax&lt;/span&gt; &lt;span style="color:#1f2328"&gt;on&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;endif&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; If using a dark background within the editing area and syntax highlighting&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; turn on this option as well&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34;set background=dark&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; Uncomment the following to have Vim jump to the last position when&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; reopening a file&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34;au BufReadPost * if line(&amp;#34;&amp;#39;\&amp;#34;&amp;#34;) &amp;gt; 1 &amp;amp;&amp;amp; line(&amp;#34;&amp;#39;\&amp;#34;&amp;#34;) &amp;lt;= line(&amp;#34;$&amp;#34;) exe &amp;#34;normal! g&amp;#39;\&amp;#34;&amp;#34; endif&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; Uncomment the following to have Vim load indentation rules and plugins&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; according to the detected filetype.&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34;filetype plugin indent on&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; The following are commented out as they cause vim to behave a lot&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; differently from regular Vi. They are highly recommended though.&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34;set showcmd&amp;#34; Show (partial) command in status line.&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34;set showmatch&amp;#34; Show matching brackets.&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34;set ignorecase&amp;#34; Do case insensitive matching&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34;set smartcase&amp;#34; Do smart case matching&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34;set incsearch&amp;#34; Incremental search&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34;set autowrite&amp;#34; Automatically save before commands like :next and :make&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34;set hidden&amp;#34; Hide buffers when they are abandoned&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34;set mouse=a&amp;#34; Enable mouse usage (all modes)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; Source a global configuration file if available&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;filereadable&lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;/etc/vim/vimrc.local&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;source&lt;/span&gt; &lt;span style="color:#0a3069"&gt;/etc/&lt;/span&gt;&lt;span style="color:#1f2328"&gt;vim&lt;/span&gt;/&lt;span style="color:#1f2328"&gt;vimrc&lt;/span&gt;.&lt;span style="color:#1f2328"&gt;local&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;endif&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;nocompatible&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;autoread&lt;/span&gt;&amp;#34;&lt;span style="color:#1f2328"&gt;reload&lt;/span&gt; &lt;span style="color:#1f2328"&gt;files&lt;/span&gt; &lt;span style="color:#1f2328"&gt;when&lt;/span&gt; &lt;span style="color:#1f2328"&gt;changed&lt;/span&gt; &lt;span style="color:#1f2328"&gt;on&lt;/span&gt; &lt;span style="color:#1f2328"&gt;disk&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#1f2328"&gt;via&lt;/span&gt; &lt;span style="color:#1f2328"&gt;Git&lt;/span&gt;&lt;span style="color:#1f2328"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;shortmess&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&lt;span style="color:#1f2328"&gt;atI&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;use &amp;#34;&lt;/span&gt;:&lt;span style="color:#1f2328"&gt;h&lt;/span&gt; &lt;span style="color:#1f2328"&gt;shortmess&lt;/span&gt; &lt;span style="color:#1f2328"&gt;to&lt;/span&gt; &lt;span style="color:#1f2328"&gt;view&lt;/span&gt; &lt;span style="color:#1f2328"&gt;help&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;magic&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;title&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;nobackup&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;noerrorbells&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;visualbell&lt;/span&gt; &lt;span style="color:#1f2328"&gt;t_vb&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;t_vb&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;timeoutlen&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&lt;span style="color:#0550ae"&gt;1000&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34;Encodings&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;encoding&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&lt;span style="color:#1f2328"&gt;utf&lt;/span&gt;&lt;span style="color:#0550ae"&gt;-8&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;fileencodings&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&lt;span style="color:#1f2328"&gt;usc&lt;/span&gt;&lt;span style="color:#1f2328"&gt;-&lt;/span&gt;&lt;span style="color:#1f2328"&gt;bom&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt;&lt;span style="color:#1f2328"&gt;utf&lt;/span&gt;&lt;span style="color:#0550ae"&gt;-8&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt;&lt;span style="color:#1f2328"&gt;cp936&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt;&lt;span style="color:#1f2328"&gt;gb18030&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt;&lt;span style="color:#1f2328"&gt;big5&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt;&lt;span style="color:#1f2328"&gt;euc&lt;/span&gt;&lt;span style="color:#1f2328"&gt;-&lt;/span&gt;&lt;span style="color:#1f2328"&gt;jp&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt;&lt;span style="color:#1f2328"&gt;euc&lt;/span&gt;&lt;span style="color:#1f2328"&gt;-&lt;/span&gt;&lt;span style="color:#1f2328"&gt;kr&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt;&lt;span style="color:#1f2328"&gt;latin1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;fileformats&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&lt;span style="color:#1f2328"&gt;unix&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt;&lt;span style="color:#1f2328"&gt;dos&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt;&lt;span style="color:#1f2328"&gt;mac&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;termencoding&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&lt;span style="color:#1f2328"&gt;utf&lt;/span&gt;&lt;span style="color:#0550ae"&gt;-8&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;formatoptions&lt;/span&gt;&lt;span style="color:#1f2328"&gt;+=&lt;/span&gt;&lt;span style="color:#1f2328"&gt;m&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;formatoptions&lt;/span&gt;&lt;span style="color:#1f2328"&gt;+=&lt;/span&gt;&lt;span style="color:#1f2328"&gt;B&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34;View&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;ruler&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;number&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;showcmd&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;showmode&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;showmatch&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;matchtime&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&lt;span style="color:#0550ae"&gt;2&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;guifont&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&lt;span style="color:#1f2328"&gt;Ubuntu&lt;/span&gt;\ &lt;span style="color:#1f2328"&gt;Mono&lt;/span&gt;\ &lt;span style="color:#1f2328"&gt;Regular&lt;/span&gt;\ &lt;span style="color:#0550ae"&gt;15&lt;/span&gt; &lt;span style="color:#57606a"&gt;&amp;#34; IMPORTANT: :h15 can&amp;#39;t be recognized&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34;Searching&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;hlsearch&lt;/span&gt;&amp;#34;&lt;span style="color:#cf222e"&gt;highlight&lt;/span&gt; &lt;span style="color:#1f2328"&gt;searches&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;incsearch&lt;/span&gt;&amp;#34;&lt;span style="color:#1f2328"&gt;incremerntal&lt;/span&gt; &lt;span style="color:#1f2328"&gt;searching&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;ignorecase&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;smartcase&lt;/span&gt;&amp;#34; &lt;span style="color:#1f2328"&gt;no&lt;/span&gt; &lt;span style="color:#1f2328"&gt;ignore&lt;/span&gt; &lt;span style="color:#1f2328"&gt;case&lt;/span&gt; &lt;span style="color:#1f2328"&gt;when&lt;/span&gt; &lt;span style="color:#1f2328"&gt;Uppercase&lt;/span&gt; &lt;span style="color:#1f2328"&gt;char&lt;/span&gt; &lt;span style="color:#1f2328"&gt;present&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34;Tab&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;expandtab&lt;/span&gt;&amp;#34; &lt;span style="color:#1f2328"&gt;expand&lt;/span&gt; &lt;span style="color:#1f2328"&gt;all&lt;/span&gt; &lt;span style="color:#1f2328"&gt;tabs&lt;/span&gt; &lt;span style="color:#1f2328"&gt;to&lt;/span&gt; &lt;span style="color:#1f2328"&gt;spaces&lt;/span&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;smarttab&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;shiftround&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34;Indent&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;autoindent&lt;/span&gt; &lt;span style="color:#1f2328"&gt;smartindent&lt;/span&gt; &lt;span style="color:#1f2328"&gt;shiftround&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;shiftwidth&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&lt;span style="color:#0550ae"&gt;4&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;tabstop&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&lt;span style="color:#0550ae"&gt;4&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;softtabstop&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&lt;span style="color:#0550ae"&gt;4&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34;Cursor&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;cursorcolumn&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;cursorline&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34; Theme&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;syntax&lt;/span&gt; &lt;span style="color:#1f2328"&gt;enable&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;background&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&lt;span style="color:#6639ba"&gt;dark&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;colorscheme&lt;/span&gt; &lt;span style="color:#1f2328"&gt;solarized&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;&amp;#34;KeyMapping&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;nnoremap&lt;/span&gt; &lt;span style="color:#1f2328"&gt;k&lt;/span&gt; &lt;span style="color:#1f2328"&gt;gk&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;nnoremap&lt;/span&gt; &lt;span style="color:#1f2328"&gt;gk&lt;/span&gt; &lt;span style="color:#1f2328"&gt;k&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;nnoremap&lt;/span&gt; &lt;span style="color:#1f2328"&gt;j&lt;/span&gt; &lt;span style="color:#1f2328"&gt;gj&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;nnoremap&lt;/span&gt; &lt;span style="color:#1f2328"&gt;gj&lt;/span&gt; &lt;span style="color:#1f2328"&gt;j&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="youcompleteme"&gt;YouCompleteMe&lt;/h2&gt;&#10;&lt;h3 id="cmake"&gt;Cmake&lt;/h3&gt;&#10;&lt;p&gt;$ pip install &amp;ndash;user cmake&lt;/p&gt;</description></item><item><title>Crawl song lyrics in NetEase</title><link>https://depoze.xyz/en/pages/netease-lyrics/</link><pubDate>Tue, 08 Feb 2022 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/netease-lyrics/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;Beginning to learn Python, @Zei_Wai and I want to do some simple tasks, instead of diving into the sea of the documentation of Python. Then we chose this: generating a WordCloud picture of the lyrics of NeteaseMusic Songlist.&lt;/p&gt;&#10;&lt;h2 id="using-urllib-package"&gt;Using urllib package&lt;/h2&gt;&#10;&lt;p&gt;First we found an api of Netease:&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://music.163.com/api/song/lyric?id=%3Csong.id%3E&amp;amp;lv=1&amp;amp;kv=1&amp;amp;tv=-1"&gt;https://music.163.com/api/song/lyric?id=&amp;lt;song.id&amp;gt;&amp;amp;lv=1&amp;amp;kv=1&amp;amp;tv=-1&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;where &amp;lt;song.id&amp;gt; is the id of songs in Netease database. When we use web client to play music, the URL of music playing page contains this id. For a simple example, if we want to get the lyrics of &lt;em&gt;Bad Apple!!&lt;/em&gt; we just need to do like this:&lt;/p&gt;</description></item><item><title>Dual Boot Win10 and Linux Mint</title><link>https://depoze.xyz/en/pages/dual-boot/</link><pubDate>Sat, 22 Jan 2022 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/dual-boot/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;I already have Windows 10 installed on my computer, and want to install Linux to dual boot.&lt;/p&gt;&#10;&lt;h2 id="preparation"&gt;Preparation&lt;/h2&gt;&#10;&lt;p&gt;I don&amp;rsquo;t have any experience on installing a new OS. So I have to investigate enough to minimize the probability that emergencies happen.&lt;/p&gt;&#10;&lt;h3 id="distro"&gt;Distro&lt;/h3&gt;&#10;&lt;p&gt;I choose Linux Mint 20.03(Edge). This stable edition is distributed on Jan. 17, 2022. Some videos that helps to choose a distro (provided by @Erik):&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=0506yDSgU7M"&gt;Linux HATES Me – Daily Driver CHALLENGE Pt.1 - YouTube&lt;/a&gt;&lt;/p&gt;</description></item><item><title>What do these mojibake mean? - UTF-8 Encoding Scheme Exploration</title><link>https://depoze.xyz/en/pages/utf8-mojibake/</link><pubDate>Wed, 08 Dec 2021 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/utf8-mojibake/</guid><description>&lt;p&gt;This article may contain horrific and gory videos. Be careful when clicking on the URLs. If you have any discomfort when browsing, please stop and leave.&lt;/p&gt;&#10;&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;We often meet mojibake, in games, web pages, or somewhere else. UTF-8 is the most widespread encoding scheme. These days @叉叉 and @北嘲 find some weird videos on YouTube, with obscure titles and terrifying cover. We are curious about the origin of these creepy videos. This article is to record our exploration process.&lt;/p&gt;</description></item><item><title>Probability of Christmas on Wednesday</title><link>https://depoze.xyz/en/pages/christmas-probability/</link><pubDate>Thu, 14 Oct 2021 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/christmas-probability/</guid><description>&lt;h2 id="original-problem"&gt;Original Problem&lt;/h2&gt;&#10;&lt;p&gt;Proof: In the system of the current Common Era, the probability of Christmas on Wed. is not 1/7.&lt;/p&gt;&#10;&lt;h2 id="what-exactly-the-probability-is"&gt;What exactly the probability is&lt;/h2&gt;&#10;&lt;p&gt;In 400 years there are 303 non-leap years and 97 leap years. Total number of days:&lt;/p&gt;&#10;&lt;p&gt;$$T = 303\cdot 365 + 97\cdot 366\equiv 303 + 97\cdot 2\equiv 0\pmod 7.$$&lt;/p&gt;&#10;&lt;p&gt;This means: If the Christmas is on Mon. in year x, then it would be on Mon. in year (x + 400). That&amp;rsquo;s to say, there&amp;rsquo;s a difference between a day of the week and another day of the week.&lt;/p&gt;</description></item><item><title>Vim commands quickref</title><link>https://depoze.xyz/en/pages/vim-commands/</link><pubDate>Mon, 04 Oct 2021 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/vim-commands/</guid><description>&lt;h2 id="move-cursor"&gt;Move cursor&lt;/h2&gt;&#10;&lt;p&gt;h and l : Left and Right.&#10;k and j : Up and Down.&lt;/p&gt;&#10;&lt;h2 id="basic-edit"&gt;Basic Edit&lt;/h2&gt;&#10;&lt;p&gt;i: enter insert mode, cursor is before the highlighted character.&#10;a: enter insert mode, cursor is after the highlighted character.&lt;/p&gt;&#10;&lt;p&gt;:wq: save and quit.&#10;:q!: quit and do not save.&lt;/p&gt;&#10;&lt;h2 id="delete-and-undo"&gt;Delete and Undo&lt;/h2&gt;&#10;&lt;p&gt;x: delete the current highlighted character.&lt;/p&gt;&#10;&lt;p&gt;d: delete. Its basic format is d &lt;number&gt; &lt;motion&gt;.&lt;/p&gt;&#10;&lt;p&gt;motion:&#10;w: move cursor to the next word&amp;rsquo;s first letter.&#10;e: move cursor to the current word&amp;rsquo;s last letter.&#10;$: move cursor to the end of this line.&lt;/p&gt;</description></item><item><title>Configure gVim on Windows</title><link>https://depoze.xyz/en/pages/gvim-windows/</link><pubDate>Sat, 02 Oct 2021 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/gvim-windows/</guid><description>&lt;h2 id="version-info"&gt;Version Info&lt;/h2&gt;&#10;&lt;p&gt;gVim version 8.1.1 8.2.0577 for Windows&lt;/p&gt;&#10;&lt;h2 id="initialize"&gt;Initialize&lt;/h2&gt;&#10;&lt;p&gt;&lt;a href="https://vimjc.com/vimrc.html"&gt;Recommended No-Plugin Vim Configuration (vimrc) and Explanations of Various Vim Options&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;First add these lines to _vimrc.&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-vim" data-lang="vim"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;nocompatible&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;autoread&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;shortmess&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&lt;span style="color:#1f2328"&gt;atI&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;magic&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;title&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;nobackup&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;noerrorbells&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;visualbell&lt;/span&gt; &lt;span style="color:#1f2328"&gt;t_vb&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;t_vb&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;timeoutlen&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&lt;span style="color:#0550ae"&gt;500&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;fileencodings&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&lt;span style="color:#1f2328"&gt;ucs&lt;/span&gt;&lt;span style="color:#1f2328"&gt;-&lt;/span&gt;&lt;span style="color:#1f2328"&gt;bom&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt;&lt;span style="color:#1f2328"&gt;utf&lt;/span&gt;&lt;span style="color:#0550ae"&gt;-8&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt;&lt;span style="color:#1f2328"&gt;cp936&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt;&lt;span style="color:#1f2328"&gt;gb18030&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt;&lt;span style="color:#1f2328"&gt;big5&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt;&lt;span style="color:#1f2328"&gt;euc&lt;/span&gt;&lt;span style="color:#1f2328"&gt;-&lt;/span&gt;&lt;span style="color:#1f2328"&gt;jp&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt;&lt;span style="color:#1f2328"&gt;euc&lt;/span&gt;&lt;span style="color:#1f2328"&gt;-&lt;/span&gt;&lt;span style="color:#1f2328"&gt;kr&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt;&lt;span style="color:#1f2328"&gt;latin1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;fileformats&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&lt;span style="color:#1f2328"&gt;unix&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt;&lt;span style="color:#1f2328"&gt;dos&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt;&lt;span style="color:#1f2328"&gt;mac&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;termencoding&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&lt;span style="color:#1f2328"&gt;utf&lt;/span&gt;&lt;span style="color:#0550ae"&gt;-8&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;formatoptions&lt;/span&gt;&lt;span style="color:#1f2328"&gt;+=&lt;/span&gt;&lt;span style="color:#1f2328"&gt;m&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;formatoptions&lt;/span&gt;&lt;span style="color:#1f2328"&gt;+=&lt;/span&gt;&lt;span style="color:#1f2328"&gt;B&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;guifont&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&lt;span style="color:#1f2328"&gt;Source&lt;/span&gt;\ &lt;span style="color:#1f2328"&gt;Code&lt;/span&gt;\ &lt;span style="color:#1f2328"&gt;Pro&lt;/span&gt;:&lt;span style="color:#1f2328"&gt;h14&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;ruler&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;number&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;nowrap&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;showcmd&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;showmode&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;showmatch&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;matchtime&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&lt;span style="color:#0550ae"&gt;2&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;hlsearch&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;incsearch&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;ignorecase&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;smartcase&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;expandtab&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;smarttab&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;shiftround&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;autoindent&lt;/span&gt; &lt;span style="color:#1f2328"&gt;smartindent&lt;/span&gt; &lt;span style="color:#1f2328"&gt;shiftround&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;shiftwidth&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&lt;span style="color:#0550ae"&gt;4&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;tabstop&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&lt;span style="color:#0550ae"&gt;4&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;softtabstop&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&lt;span style="color:#0550ae"&gt;4&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;cursorcolumn&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;cursorline&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;filetype&lt;/span&gt; &lt;span style="color:#1f2328"&gt;on&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;syntax&lt;/span&gt; &lt;span style="color:#1f2328"&gt;on&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;foldmethod&lt;/span&gt;&lt;span style="color:#1f2328"&gt;=&lt;/span&gt;&lt;span style="color:#cf222e"&gt;syntax&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;set&lt;/span&gt; &lt;span style="color:#1f2328"&gt;nofoldenable&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="install-theme-solarized"&gt;Install Theme: Solarized&lt;/h2&gt;&#10;&lt;p&gt;&lt;a href="https://vimjc.com/vim-color-schemes.html"&gt;A Roundup of 15 Famous Vim Color Schemes - Vim Beginner Tutorial (7)&lt;/a&gt;&lt;/p&gt;</description></item><item><title>A Process Record of Investigating the Cycle and Intersection Properties of Singly Linked Lists</title><link>https://depoze.xyz/en/pages/linked-list-cycle/</link><pubDate>Wed, 22 Sep 2021 00:00:00 +0000</pubDate><guid>https://depoze.xyz/en/pages/linked-list-cycle/</guid><description>&lt;h2 id="problem"&gt;Problem&lt;/h2&gt;&#10;&lt;p&gt;How do you determine whether a cycle exists in a singly linked list? How do you determine whether two singly linked lists intersect? If they intersect, how do you find the intersection point?&lt;/p&gt;&#10;&lt;h2 id="approach"&gt;Approach&lt;/h2&gt;&#10;&lt;h3 id="first-thoughts"&gt;First Thoughts&lt;/h3&gt;&#10;&lt;p&gt;Detecting a cycle: traverse the list. If there is no cycle you will reach NULL; if there is a cycle you will reach head.&lt;br&gt;&#10;Detecting intersection: a singly linked list has only one next field, so intersection must be one of two cases: &amp;ldquo;both have no cycle&amp;rdquo; or &amp;ldquo;one has a cycle and the other does not.&amp;rdquo;&lt;br&gt;&#10;Where were these first thoughts inadequate? After thinking over the following days, I gradually realized where the flaws were…&lt;/p&gt;</description></item></channel></rss>