<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Solarized Sublime Sekai</title>
    <link>https://vincenttam.gitlab.io/</link>
    <description>Recent content on Solarized Sublime Sekai</description>
    <generator>Hugo</generator>
    <language>en</language>
    <atom:link href="https://vincenttam.gitlab.io/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Optimisation d&#39;une VM GCP et domptage de Neovim</title>
      <link>https://vincenttam.gitlab.io/post/2026-03-12-optimization-d-une-vm-gcp-et-domptage-de-neovim/</link>
      <pubDate>Thu, 12 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2026-03-12-optimization-d-une-vm-gcp-et-domptage-de-neovim/</guid>
      <description>&lt;p&gt;Aujourd&amp;rsquo;hui, j&amp;rsquo;ai passé ma configuration de développement sur une VM Google&#xA;Cloud Platform (GCP). Entre les contraintes de ressources de la machine et le&#xA;peaufinage de mon environnement Neovim pour mon projet Rust, voici ce que j&amp;rsquo;ai&#xA;appris.&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-transfert-de-fichiers-avec-rsync&#34;&gt;1. Transfert de fichiers avec rsync&lt;/h2&gt;&#xA;&lt;p&gt;Pour uploader mes dossiers de projet vers la VM, j&amp;rsquo;ai utilisé &lt;code&gt;rsync&lt;/code&gt;. C&amp;rsquo;est&#xA;bien plus efficace que &lt;code&gt;scp&lt;/code&gt; car il ne transfère que les modifications.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rsync -avzLP --exclude&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;.git&amp;#39;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\ &lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ~/.local/share/typst/packages/preview/auto-mando/ &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt;  user@&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;gcloud compute instances describe typst-bot-vm &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt;    --format&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;get(networkInterfaces[0].accessConfigs[0].natIP)&amp;#39;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt;    --zone&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;us-east1-d&amp;#39;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;:~/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Le « combo doré » :&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rust Project Structure for rust-canto</title>
      <link>https://vincenttam.gitlab.io/post/2026-03-07-rust-project-structure-for-rust-canto/</link>
      <pubDate>Sat, 07 Mar 2026 01:13:26 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2026-03-07-rust-project-structure-for-rust-canto/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;I created my first crate &lt;a href=&#34;https://crates.io/crates/rust-canto&#34;&gt;&lt;code&gt;rust-canto&lt;/code&gt;&lt;/a&gt; even though I didn&amp;rsquo;t know&#xA;&lt;a href=&#34;https://rust-lang.org/&#34;&gt;Rust&lt;/a&gt;, so that I can bring automatic Cantonese word segmentation and&#xA;romanizations into &lt;a href=&#34;https://typst.app/&#34;&gt;Typst&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This is a great idea. Moving from a complex &lt;code&gt;xtask&lt;/code&gt; workspace to a streamlined&#xA;&lt;code&gt;build.rs&lt;/code&gt; and &lt;code&gt;build.sh&lt;/code&gt; workflow is a common evolution for Rust projects,&#xA;especially when targeting WebAssembly.&lt;/p&gt;&#xA;&lt;h3 id=&#34;five-lessons-learnt-from-chat-bot&#34;&gt;Five lessons learnt from chat bot&lt;/h3&gt;&#xA;&lt;h4 id=&#34;1-avoid-the-cratesio-path-dependency-trap&#34;&gt;1. Avoid the &amp;ldquo;Crates.io Path Dependency&amp;rdquo; Trap&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;The Problem:&lt;/strong&gt; Using a Workspace with a local helper crate.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Typst Package for Jyutcitzi</title>
      <link>https://vincenttam.gitlab.io/post/2026-02-08-typst-package-for-jyutcitzi/</link>
      <pubDate>Sun, 08 Feb 2026 17:09:59 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2026-02-08-typst-package-for-jyutcitzi/</guid>
      <description>&lt;h2 id=&#34;background&#34;&gt;Background&lt;/h2&gt;&#xA;&lt;p&gt;As a native Cantonese speaker, I found it inconvenient to repeat all the time&#xA;when I have to teach others how to speak my language.  I acquired Jyutping (粵拼)&#xA;a couple of years ago.  It&amp;rsquo;s a popular phonetic system for the Cantonese&#xA;language.  However, some of my fellow countrymen aren&amp;rsquo;t fond of this&#xA;romanization scheme.&lt;/p&gt;&#xA;&lt;h2 id=&#34;a-soft-introduction-to-introduction-to-jyutcitzi&#34;&gt;A soft &amp;ldquo;introduction&amp;rdquo; to &amp;ldquo;Introduction to Jyutcitzi&amp;rdquo;&lt;/h2&gt;&#xA;&lt;p&gt;Recently, I&amp;rsquo;ve heard of another phonetic system called Jyutcit (粵切).  It&amp;rsquo;s&#xA;basically a &amp;ldquo;cutting sound method&amp;rdquo; (切音法).  Each syllable is &amp;ldquo;initial + final&amp;rdquo;.&#xA;To compose a sound, we take two syllables, from which we keep&lt;/p&gt;</description>
    </item>
    <item>
      <title>Imprimante HP Deskjet 4100 sous Linux</title>
      <link>https://vincenttam.gitlab.io/post/2026-01-23-imprimante-hp-deskjet-4100-sous-linux/</link>
      <pubDate>Fri, 23 Jan 2026 18:31:59 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2026-01-23-imprimante-hp-deskjet-4100-sous-linux/</guid>
      <description>&lt;h3 id=&#34;introduction&#34;&gt;Introduction&lt;/h3&gt;&#xA;&lt;p&gt;J&amp;rsquo;ai récupéré une imprimante HP DeskJet Plus 4122.  Je m&amp;rsquo;en rarement servais car&#xA;je pensais à tort que HP ne marchait que sous Windows.  J&amp;rsquo;aime tellement Linux&#xA;que je me connectais pas souvent à Windows, où l&amp;rsquo;appli &lt;a href=&#34;https://www.hpsmart.com/&#34;&gt;HP Smart&lt;/a&gt; est&#xA;bloquée de temps en temps.&lt;/p&gt;&#xA;&lt;p&gt;Cet après-midi, après une petite recherche, je me suis rendu compte qu&amp;rsquo;il y&#xA;avait une pilote &lt;a href=&#34;https://developers.hp.com/hp-linux-imaging-and-printing&#34;&gt;HP Linux Imaging and Printing (HPLIP)&lt;/a&gt; pour Linux.&#xA;J&amp;rsquo;ai décidé de l&amp;rsquo;essayer sur mon système Lubuntu 24.04.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Choisir La Stabilite en Christ</title>
      <link>https://vincenttam.gitlab.io/post/2025-08-25-choisir-la-stabilite-en-christ/</link>
      <pubDate>Mon, 25 Aug 2025 16:23:12 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2025-08-25-choisir-la-stabilite-en-christ/</guid>
      <description>&lt;p&gt;Hier, lors de la prédication, j&amp;rsquo;ai reçu un message très important.  Nous avons&#xA;toujours le choix : celui de refuser d&amp;rsquo;être blessés, affaiblis ou angoissés par&#xA;les erreurs de nos parents, par les pensées négatives ou par les relations&#xA;toxiques.&lt;/p&gt;&#xA;&lt;p&gt;Une sœur de mon église m&amp;rsquo;a partagé que la &lt;strong&gt;stabilité émotionnelle&lt;/strong&gt; n&amp;rsquo;est pas&#xA;quelque chose que l&amp;rsquo;on construit seulement par soi-même, mais un &lt;strong&gt;don de&#xA;Dieu&lt;/strong&gt;. En effet, pour ne pas être détournés par ces pensées destructrices, nous&#xA;devons nous rappeler que nous sommes &lt;strong&gt;d&amp;rsquo;abord enfants de Dieu&lt;/strong&gt;. Il est notre&#xA;Père, et Son amour est &lt;strong&gt;inébranlable et inséparable&lt;/strong&gt;, aussi longtemps que nous&#xA;plaçons notre foi en Lui.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Plus grande chute du plus grand royaume</title>
      <link>https://vincenttam.gitlab.io/post/2025-08-10-plus-grande-chute-du-plus-grapnd-royaume/</link>
      <pubDate>Sun, 10 Aug 2025 14:29:12 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2025-08-10-plus-grande-chute-du-plus-grapnd-royaume/</guid>
      <description>&lt;p&gt;Lors du culte la semaine dernière, la pasteur a prêché sur l&amp;rsquo;histoire du roi&#xA;Salomon, qui avait demandé l&amp;rsquo;intelligence pour exercer la justice, qui l&amp;rsquo;a&#xA;reçue.  Son royaume était le plus riche, le plus puissant au monde, et aucun&#xA;pays ne peut le surpasser, ni ceux d&amp;rsquo;avant, ni ceux d&amp;rsquo;après.&lt;/p&gt;&#xA;&lt;p&gt;En voyant un verset du livre des Proverbes pertinent, la foule a réjoui.&#xA;Cependant, je me suis mis en doute au sujet de la chute de son royaume après sa&#xA;mort.  Salomon a-t-il reçu ce qu&amp;rsquo;il avait demandé ?  Une chaîne de raisons est&#xA;sortie de ma tête :&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dix Pensees Formidables Chretiennes</title>
      <link>https://vincenttam.gitlab.io/post/2025-07-27-dix-pensees--formidables-chretiennes/</link>
      <pubDate>Sun, 27 Jul 2025 17:37:42 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2025-07-27-dix-pensees--formidables-chretiennes/</guid>
      <description>&lt;p&gt;Ma prof m&amp;rsquo;a envoyé &lt;a href=&#34;https://www.gaic-seric.info/2021/01/association-vivre-ensemble-a-cannes-veac-quelques-phrases-a-mediter-en-cette-periode-difficile.html&#34;&gt;dix citations remarquables&lt;/a&gt; il y a des années.&#xA;&lt;a href=&#34;https://www.jepositiveaumax.com/2023/03/10-phrases-puissantes-a-mediter.html&#34;&gt;Un autre blog d&amp;rsquo;une écrivaine&lt;/a&gt; a inclus une autre qui n&amp;rsquo;est pas dans le&#xA;premier.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;SE SOUCIER, n&amp;rsquo;enlève pas LES SOUCIS DE DEMAIN; ÇA NE FAIT QU&amp;rsquo;ENLEVER LA PAIX&#xA;D&amp;rsquo;AUJOURDHUI!&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Tikz Loop Over Coordinates</title>
      <link>https://vincenttam.gitlab.io/post/2024-10-07-tikz-loop-over-coordinates/</link>
      <pubDate>Mon, 07 Oct 2024 14:50:36 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2024-10-07-tikz-loop-over-coordinates/</guid>
      <description>&lt;p&gt;This is my belated response to a &lt;a href=&#34;https://tex.stackexchange.com/q/725773/126386&#34;&gt;self-identified dupe on TeX.SE&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h1 id=&#34;background&#34;&gt;Background&lt;/h1&gt;&#xA;&lt;p&gt;The list in a &lt;code&gt;\foreach&lt;/code&gt; loop is often long.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-tex&#34; data-lang=&#34;tex&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\foreach&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;\pointA&lt;/span&gt;/&lt;span class=&#34;k&#34;&gt;\pointB&lt;/span&gt; in &lt;span class=&#34;nb&#34;&gt;{{&lt;/span&gt;(1,0)&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;/&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;(2,2)&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;,&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;(3,4)&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;/&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;(2,1)&lt;span class=&#34;nb&#34;&gt;}}&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;\pointA&lt;/span&gt; -- &lt;span class=&#34;k&#34;&gt;\pointB&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Imagine having several other loop variables.  The code inside the &lt;code&gt;{…}&lt;/code&gt; list&#xA;won&amp;rsquo;t be readable.&lt;/p&gt;&#xA;&lt;h1 id=&#34;problem&#34;&gt;Problem&lt;/h1&gt;&#xA;&lt;p&gt;How can I make it looks smarter?&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-tex&#34; data-lang=&#34;tex&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\foreach&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;\pointA&lt;/span&gt;/&lt;span class=&#34;k&#34;&gt;\pointB&lt;/span&gt; in &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;(1,0)&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;/&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;(2,2)&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;,&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;(3,4)&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;/&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;(2,1)&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;\pointA&lt;/span&gt; -- &lt;span class=&#34;k&#34;&gt;\pointB&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;doesn&amp;rsquo;t work.&lt;/p&gt;&#xA;&lt;h1 id=&#34;inspiration&#34;&gt;Inspiration&lt;/h1&gt;&#xA;&lt;p&gt;Recently, I was asked the way to make two graphs to illustrate a complex&#xA;function.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Upgraded to Hugo v0.135</title>
      <link>https://vincenttam.gitlab.io/post/2024-10-07-upgraded-to-hugo-v0135/</link>
      <pubDate>Mon, 07 Oct 2024 13:05:16 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2024-10-07-upgraded-to-hugo-v0135/</guid>
      <description>&lt;h1 id=&#34;background&#34;&gt;Background&lt;/h1&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;18 months ago, I used &lt;code&gt;latest&lt;/code&gt;&#xA;&lt;a href=&#34;https://gitlab.com/pages/hugo/container_registry/574432&#34;&gt;Docker image in GitLab container resgitry for Hugo extended&lt;/a&gt; at&#xA;commit &lt;a href=&#34;https://gitlab.com/VincentTam/vincenttam.gitlab.io/-/commit/168fe3d&#34;&gt;168fe3d&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Six years ago, I &lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-09-16-staticman-powered-gitlab-pages/1/&#34;&gt;integrated static comments to this blog&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Last week end, when my friend tested static comments here, she reported that&#xA;&lt;a href=&#34;https://gitlab.com/staticmanlab&#34;&gt;@StaticmanLab&amp;rsquo;s&lt;/a&gt; GitLab token had been expired.  As a result, I&#xA;updated it and re-deployed my &lt;a href=&#34;https://staticman.net/&#34;&gt;Staticman&lt;/a&gt; instance.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h1 id=&#34;problem&#34;&gt;Problem&lt;/h1&gt;&#xA;&lt;p&gt;I wrote &lt;a href=&#34;https://vincenttam.gitlab.io/post/2023-10-08-exponential-function-series-definition/#comment-1r1&#34;&gt;a sample comment containing math equations&lt;/a&gt; to test if it&amp;rsquo;s&#xA;still working.  The back-end processes were fine, but the site rebuilding wasn&amp;rsquo;t&#xA;successful, as commit &lt;a href=&#34;https://gitlab.com/VincentTam/vincenttam.gitlab.io/-/commit/c531a0b&#34;&gt;c531a0b&lt;/a&gt; reveals.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Exponential Function Series Definition</title>
      <link>https://vincenttam.gitlab.io/post/2023-10-08-exponential-function-series-definition/</link>
      <pubDate>Sun, 08 Oct 2023 16:50:58 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2023-10-08-exponential-function-series-definition/</guid>
      <description>&lt;h3 id=&#34;motivation&#34;&gt;Motivation&lt;/h3&gt;&#xA;&lt;p&gt;My &lt;a href=&#34;https://vincenttam.gitlab.io/post/2022-09-19-exponential-function-product-rule/&#34;&gt;previous post about the definition of the exponential function&lt;/a&gt; has&#xA;provided &lt;em&gt;no&lt;/em&gt; connection between a well-known characterization (or an&#xA;alternative definition) of the exponential function:&lt;/p&gt;&#xA;&lt;div&gt;&#xA;$$\exp(s) = \lim_{n\to\infty} \sum_{k=1}^n \frac{s^k}{k!}.$$&#xA;&lt;/div&gt;&#xA;&lt;p&gt;The term to be summed is simpler than the one in the binomial expansion of $(1 +&#xA;s / n)^n$.&lt;/p&gt;&#xA;&lt;h3 id=&#34;solution&#34;&gt;Solution&lt;/h3&gt;&#xA;&lt;p&gt;We want this sum to be as small as possible as $n \to \infty$.&lt;/p&gt;&#xA;&lt;div&gt;&#xA;$$\sum_{k=2}^n \left( 1 - \frac{n \cdot \dots \cdot (n + 1 - k)}&#xA;{\underbrace{n \cdot \dots \cdot n}_{n^k}} \right) \, \frac{x^k}{k!}$$&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Observe that the fraction is a product&lt;/p&gt;</description>
    </item>
    <item>
      <title>Start Oracle From Git Bash</title>
      <link>https://vincenttam.gitlab.io/post/2023-06-07-start-oracle-from-git-bash/</link>
      <pubDate>Wed, 07 Jun 2023 09:36:40 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2023-06-07-start-oracle-from-git-bash/</guid>
      <description>&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;p&gt;To run Oracle SQL in Git Bash.&lt;/p&gt;&#xA;&lt;h3 id=&#34;assumption&#34;&gt;Assumption&lt;/h3&gt;&#xA;&lt;p&gt;You have &lt;code&gt;sqlplus&lt;/code&gt; added to your &lt;code&gt;PATH&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;PATH&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;PATH&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;:/c/oraclexe/app/oracle/product/11.2.0/server/bin/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;The option &lt;code&gt;/nolog&lt;/code&gt; doesn&amp;rsquo;t work as expected.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sqlplus /nolog&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;SQL*Plus: Release 11.2.0.2.0 Production on Mer. Juin 7 09:43:47 2023&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Copyright (c) 1982, 2014, Oracle.  All rights reserved.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;…&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;When SQL*Plus starts, and after CONNECT commands, the site profile&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(e.g. $ORACLE_HOME/sqlplus/admin/glogin.sql) and the user profile&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(e.g. login.sql in the working directory) are run.  The files may&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;contain SQL*Plus commands.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Refer to the SQL*Plus User&amp;#39;s Guide and Reference for more information.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;solution&#34;&gt;Solution&lt;/h3&gt;&#xA;&lt;p&gt;Luckily, googling &amp;ldquo;start sqlplus from git bash&amp;rdquo;, I found the solution in&#xA;&lt;a href=&#34;https://forums.oracle.com/ords/apexds/map/tech/discussion/4265768/sql-nolog-doesnt-work-with-gitbash-on-windows&#34;&gt;this related Oracle Forum post&lt;/a&gt;: using an extra slash will do, i.e.&#xA;&lt;code&gt;sqlplus //nolog&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Closer Look into ArrayList Iterator</title>
      <link>https://vincenttam.gitlab.io/post/2023-05-07-closer-look-into-arraylist-iterator/</link>
      <pubDate>Sun, 07 May 2023 15:17:57 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2023-05-07-closer-look-into-arraylist-iterator/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;Given an &lt;code&gt;ArrayList&lt;/code&gt; of &lt;code&gt;Integer&lt;/code&gt;s from &lt;code&gt;0&lt;/code&gt; (inclusive) to &lt;code&gt;10&lt;/code&gt; (exclusive) with&#xA;step size &lt;code&gt;1&lt;/code&gt;.  We use a &lt;code&gt;while&lt;/code&gt;-loop and an &lt;code&gt;Iterator&amp;lt;Integer&amp;gt;&lt;/code&gt; to check if&#xA;this &lt;code&gt;ArrayList&lt;/code&gt; &lt;code&gt;hasNext()&lt;/code&gt; element, before we &lt;code&gt;remove()&lt;/code&gt; the current element.&lt;/p&gt;&#xA;&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;The code below throws an &lt;code&gt;IllegalStateException&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;java.util.ArrayList&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;java.util.Iterator&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;java.util.List&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;UnderstandArrayListIterator&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;static&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;void&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;String&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;List&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Integer&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;new&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ArrayList&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;++&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;add&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Iterator&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Integer&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;iter&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;iterator&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;iter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;next&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;while&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;iter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;hasNext&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;iter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;remove&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;discussion&#34;&gt;Discussion&lt;/h3&gt;&#xA;&lt;p&gt;After invoking &lt;a href=&#34;https://github.com/openjdk/jdk/blob/0dca573ca5d357157565072e22e24d6a9bee717a/src/java.base/share/classes/java/util/ArrayList.java#L1060-L1073&#34;&gt;&lt;code&gt;remove()&lt;/code&gt;&lt;/a&gt;, &lt;code&gt;lastRet&lt;/code&gt; is set to &lt;code&gt;-1&lt;/code&gt;, so&#xA;next time that this method is invoked, the condition &lt;code&gt;lastRet &amp;lt; 0&lt;/code&gt; in the&#xA;&lt;code&gt;if&lt;/code&gt;-block is satisfied, resulting in an &lt;code&gt;IllegalStateException&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Notes du Jour</title>
      <link>https://vincenttam.gitlab.io/post/2023-04-20-notes-du-jour/</link>
      <pubDate>Thu, 20 Apr 2023 22:26:41 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2023-04-20-notes-du-jour/</guid>
      <description>&lt;p&gt;Dans le classique schéma pour la gestion du projet, on met le besoin du client&#xA;d&amp;rsquo;abord.  C&amp;rsquo;est important de l&amp;rsquo;entendre avant de commencer le traf.  Sinon, on&#xA;risque de perdre des heures (ou pire des jours) sur une chose que le client ne&#xA;valide pas.  Avant d&amp;rsquo;y mettre l&amp;rsquo;effort, il est bon de lui montrer idée générale&#xA;et de lui demander un avis, afin d&amp;rsquo;éviter de lui délivrer un produit qu&amp;rsquo;il ne&#xA;veut pas.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Passed Codingame Java Certification Test</title>
      <link>https://vincenttam.gitlab.io/post/2023-04-20-passed-codingame-java-certification-test/</link>
      <pubDate>Thu, 20 Apr 2023 10:04:14 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2023-04-20-passed-codingame-java-certification-test/</guid>
      <description>&lt;h3 id=&#34;string-regex-replace-using-capture-groups&#34;&gt;String regex replace using capture groups&lt;/h3&gt;&#xA;&lt;p&gt;Since Java SE 9, &lt;a href=&#34;https://docs.oracle.com/javase/9/docs/api/java/util/regex/Matcher.html#replaceAll-java.util.function.Function-&#34;&gt;&lt;code&gt;java.util.regex.Matcher&lt;/code&gt;&amp;rsquo;s &lt;code&gt;replaceAll()&lt;/code&gt;&lt;/a&gt;&#xA;method supports lambda expressions.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// import java.util.regex.*;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;String&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;varName&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;random_string&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Pattern&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pattern&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Pattern&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;compile&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;_([a-z])&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Matcher&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;matcher&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pattern&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;matcher&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;varName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;String&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;result&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;matcher&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;replaceAll&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;group&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;toUpperCase&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;());&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Source: &lt;a href=&#34;https://stackoverflow.com/a/67605103/3184351&#34;&gt;Arvind Kumar Avinash&amp;rsquo;s answer on Stack Overflow&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;check-characters-properties-using-characters-static-methods&#34;&gt;Check characters properties using &lt;code&gt;Character&lt;/code&gt;&amp;rsquo;s static methods&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;code&gt;Character&lt;/code&gt; class provides some static predicates like&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;isAlphabetic(char c)&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;isDigit(char c)&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;isLowerCase(char c)&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Source: &lt;a href=&#34;https://www.javatpoint.com/post/java-character-isalphabetic-method&#34;&gt;Java Character &lt;code&gt;isAlphabetic()&lt;/code&gt; Method on Javapoint&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Notes pour l&#39;algo des tableaux</title>
      <link>https://vincenttam.gitlab.io/post/2023-04-18-notes-pour-l-algo-des-tableaux/</link>
      <pubDate>Tue, 18 Apr 2023 09:17:31 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2023-04-18-notes-pour-l-algo-des-tableaux/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://vincenttam.gitlab.io/post/2023-04-18-notes-pour-l-algo-des-tableaux/diapo.html&#34;&gt;Lien vers le diapo&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Notes d&#39;algo du jour</title>
      <link>https://vincenttam.gitlab.io/post/2023-04-17-notes-d-algo-du-jour/</link>
      <pubDate>Mon, 17 Apr 2023 09:58:58 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2023-04-17-notes-d-algo-du-jour/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://vincenttam.gitlab.io/post/2023-04-17-notes-d-algo-du-jour/algo-avance.html&#34;&gt;Lien vers le diapo&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Diapo Sur HashMap</title>
      <link>https://vincenttam.gitlab.io/post/2023-04-13-diapo-sur-hashmap/</link>
      <pubDate>Thu, 13 Apr 2023 14:55:16 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2023-04-13-diapo-sur-hashmap/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://vincenttam.gitlab.io/post/2023-04-13-diapo-sur-hashmap/dessin.sozi.html&#34;&gt;Lien vers mon diapo sur &lt;code&gt;HashMap&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Visual Studio Code</title>
      <link>https://vincenttam.gitlab.io/page/visual-studio-code/</link>
      <pubDate>Wed, 12 Apr 2023 22:51:53 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/page/visual-studio-code/</guid>
      <description>&lt;h3 id=&#34;i-classfar-fa-keyboard-fa-fw-aria-hiddeni-usual-keys&#34;&gt;&lt;i class=&#34;far fa-keyboard fa-fw&#34; aria-hidden&gt;&lt;/i&gt; Usual keys&lt;/h3&gt;&#xA;&lt;p&gt;I&amp;rsquo;ll only list those I find useful.&lt;/p&gt;&#xA;&lt;h4 id=&#34;i-classfas-fa-arrows-alt-fa-fw-aria-hiddeni-navigation&#34;&gt;&lt;i class=&#34;fas fa-arrows-alt fa-fw&#34; aria-hidden&gt;&lt;/i&gt; Navigation&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;lt;C-Up&amp;gt;&lt;/code&gt; / &lt;code&gt;&amp;lt;C-Down&amp;gt;&lt;/code&gt;: move up ↑ / down ↓ &lt;em&gt;without&lt;/em&gt; changing&#xA;&lt;i class=&#34;fas fa-i-cursor&#34; aria-hidden&gt;&lt;/i&gt; cursor position.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;lt;C-g&amp;gt;&lt;/code&gt;: go to line number.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;lt;C-p&amp;gt;&lt;/code&gt;: go to other files.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;lt;C-S-p&amp;gt;&lt;/code&gt;: show &lt;a href=&#34;https://code.visualstudio.com/api/ux-guidelines/command-palette&#34;&gt;Command Palette&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;lt;C-b&amp;gt;&lt;/code&gt;: toggle left side bar.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;lt;C-j&amp;gt;&lt;/code&gt;: toggle Terminal.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;i-classfas-fa-search-fa-fw-aria-hiddeni-searching--replacing&#34;&gt;&lt;i class=&#34;fas fa-search fa-fw&#34; aria-hidden&gt;&lt;/i&gt; Searching / Replacing&lt;/h4&gt;&#xA;&lt;p&gt;As usual, it supports custom selection range and regular expressions as&#xA;expected.  Transformations preserving cases are possible.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fixed Archetype Error for This Site</title>
      <link>https://vincenttam.gitlab.io/post/2023-04-11-fixed-archetype-error-for-this-site/</link>
      <pubDate>Tue, 11 Apr 2023 15:51:05 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2023-04-11-fixed-archetype-error-for-this-site/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;In &lt;a href=&#34;https://vincenttam.gitlab.io/post/2019-08-10-customized-archetype-for-this-site/&#34;&gt;&lt;em&gt;Customized Archetype for This Site&lt;/em&gt;&lt;/a&gt;, I was using&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{ slicestr .Name 11 | humanize | title }}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;in the &lt;code&gt;title&lt;/code&gt; attribute in my site&amp;rsquo;s &lt;code&gt;archetypes/default.md&lt;/code&gt;, so that the first&#xA;11 characters (&lt;code&gt;YYYY-MM-DD-&lt;/code&gt;) would be taken out if I type this command.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ hugo new post/$(date -I)-&amp;lt;MY_POST_TITLE&amp;gt;.md&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In practice, &lt;code&gt;&amp;lt;MY_POST_TITLE&amp;gt;&lt;/code&gt; can be replaced to any title, like&#xA;&lt;code&gt;my-post-title&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;I wanted to create &lt;a href=&#34;https://vincenttam.gitlab.io/page/intellij/&#34;&gt;my IntelliJ cheatsheet&lt;/a&gt;, so I typed this command.&lt;/p&gt;</description>
    </item>
    <item>
      <title>IntelliJ</title>
      <link>https://vincenttam.gitlab.io/page/intellij/</link>
      <pubDate>Tue, 11 Apr 2023 15:48:55 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/page/intellij/</guid>
      <description>&lt;p&gt;The following shortcuts are based on&#xA;&lt;i class=&#34;fab fa-windows&#34; aria-hidden&gt;&lt;/i&gt; M$ Windows.&lt;/p&gt;&#xA;&lt;h3 id=&#34;i-classfas-fa-arrows-alt-fa-fw-aria-hiddeni-navigation&#34;&gt;&lt;i class=&#34;fas fa-arrows-alt fa-fw&#34; aria-hidden&gt;&lt;/i&gt; Navigation&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;lt;C-Up&amp;gt;&lt;/code&gt; / &lt;code&gt;&amp;lt;C-Down&amp;gt;&lt;/code&gt;: move up ↑ / down ↓ &lt;em&gt;without&lt;/em&gt; changing&#xA;&lt;i class=&#34;fas fa-i-cursor&#34; aria-hidden&gt;&lt;/i&gt; cursor position.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;lt;C-Alt-↑&amp;gt;&lt;/code&gt; / &lt;code&gt;&amp;lt;C-Alt-↓&amp;gt;&lt;/code&gt;: open file explorer for the project root.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;i-classfas-fa-search-fa-fw-aria-hiddeni-searching--replacing&#34;&gt;&lt;i class=&#34;fas fa-search fa-fw&#34; aria-hidden&gt;&lt;/i&gt; Searching / Replacing&lt;/h3&gt;&#xA;&lt;p&gt;As usual, it supports regular expressions as expected.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;lt;C-F&amp;gt;&lt;/code&gt;: search&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;lt;C-R&amp;gt;&lt;/code&gt;: replace&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;lt;F3&amp;gt;&lt;/code&gt;: jump to next matching word&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;lt;S-F3&amp;gt;&lt;/code&gt;: jump to previous matching word&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;i-classfar-fa-edit-fa-fw-aria-hiddeni-editing--selection&#34;&gt;&lt;i class=&#34;far fa-edit fa-fw&#34; aria-hidden&gt;&lt;/i&gt; Editing / Selection&lt;/h3&gt;&#xA;&lt;p&gt;Syntax-independent shortcuts:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Exploration of My First IntelliJ Project</title>
      <link>https://vincenttam.gitlab.io/post/2023-04-05-exploration-of-my-first-intellij-project/</link>
      <pubDate>Wed, 05 Apr 2023 09:46:00 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2023-04-05-exploration-of-my-first-intellij-project/</guid>
      <description>&lt;p&gt;We&amp;rsquo;ll try to stay in the project root if possible.&lt;/p&gt;&#xA;&lt;p&gt;Find all non-hidden files to know the file structure.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ find -path &amp;#39;./.*&amp;#39; -prune -o -type f -print&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./Algo-init.iml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./out/production/Algo-init/fr/eql/ai114/algo/init/demo/_1_HelloWorld.class&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./src/fr/eql/ai114/algo/init/demo/_1_HelloWorld.java&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;-prune&lt;/code&gt; returns true for the chosen path and prevents &lt;code&gt;find&lt;/code&gt; from descending.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;-o&lt;/code&gt; means OR, so the paths matching &lt;code&gt;-prune&lt;/code&gt; won&amp;rsquo;t pass through &lt;code&gt;-o&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;-type f&lt;/code&gt; selects files, not folders.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;By default, AND is used to connect different conditions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reuse Commands with Shell Arguments</title>
      <link>https://vincenttam.gitlab.io/post/2023-03-25-reuse-commands-with-shell-arguments/</link>
      <pubDate>Sat, 25 Mar 2023 11:23:58 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2023-03-25-reuse-commands-with-shell-arguments/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;We often want to test the output with different values for a parameter.  Here&amp;rsquo;s&#xA;an example: we have a &lt;code&gt;param&lt;/code&gt;eter that&#xA;&lt;img src=&#34;https://vincenttam.gitlab.io/page/simple-document-templates/pandoc-logo2.svg&#34; alt=&#34;pandoc icon&#34;&#xA;class=&#34;small-inline-icons&#34;&gt; &lt;a href=&#34;https://pandoc.org/&#34;&gt;pandoc&lt;/a&gt; uses to &lt;i class=&#34;fa-regular&#xA;fa-file-code fa-lg&#34;&gt;&lt;/i&gt; &lt;i class=&#34;fa-solid fa-arrow-right fa-lg&#34;&gt;&lt;/i&gt; &lt;i&#xA;class=&#34;fa-regular fa-file-pdf fa-lg&#34;&gt;&lt;/i&gt; / &lt;i class=&#34;fa-regular fa-file-word&#xA;fa-lg&#34;&gt;&lt;/i&gt; compile source code files to PDF / M$ Word / etc.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rm output.html&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;param&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;0&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; pandoc input&lt;span class=&#34;nv&#34;&gt;$param&lt;/span&gt;.txt -o output.html&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;param&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$param&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In practice, a &lt;code&gt;param&lt;/code&gt;eter can be a font, the font size, etc, and there can be&#xA;multiple parameters.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Finding Pandoc Logo</title>
      <link>https://vincenttam.gitlab.io/post/2023-03-24-finding-pandoc-logo/</link>
      <pubDate>Fri, 24 Mar 2023 02:10:45 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2023-03-24-finding-pandoc-logo/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;I&amp;rsquo;m writing my &lt;a href=&#34;https://vincenttam.gitlab.io/page/simple-document-templates/&#34;&gt;guide for preparing simple documents&lt;/a&gt;.  I hope that users can prepare documents efficiently and the prepared documents look smart.&lt;/p&gt;&#xA;&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;To help readers get my message in the linked guide, I used many icons from &lt;a href=&#34;https://fontawesome.com/&#34;&gt;Font Awesome&lt;/a&gt;.  However, it doesn&amp;rsquo;t include &lt;a href=&#34;https://pandoc.org/&#34;&gt;pandoc&lt;/a&gt;&amp;rsquo;s logo.  I tried searching that using the search string &amp;ldquo;pandoc logo filetype:svg&amp;rdquo;.  &lt;a href=&#34;https://duckduckgo.com/&#34;&gt;Duckduckgo&lt;/a&gt; couldn&amp;rsquo;t find any results.  Luckily, &lt;a href=&#34;https://google.com/&#34;&gt;Google&lt;/a&gt; found many SVGs.  The first result linked to a &lt;a href=&#34;https://groups.google.com/g/pandoc-discuss/c/1bKIuyBnWaQ/discussion&#34;&gt;relevant discussion on Google Groups&lt;/a&gt;.  However, all posts were collapsed, and the desired SVG didn&amp;rsquo;t show up.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Simple Document Templates</title>
      <link>https://vincenttam.gitlab.io/page/simple-document-templates/</link>
      <pubDate>Wed, 22 Mar 2023 12:32:10 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/page/simple-document-templates/</guid>
      <description>&lt;h3 id=&#34;i-classfa-regular-fa-circle-play-fa-lgi-to-get-started&#34;&gt;&lt;i class=&#34;fa-regular fa-circle-play fa-lg&#34;&gt;&lt;/i&gt; To get started&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;i class=&#34;fa-solid fa-download fa-lg&#34;&gt;&lt;/i&gt;&#xA;&lt;i class=&#34;fa-solid fa-screwdriver-wrench fa-lg&#34;&gt;&lt;/i&gt;&#xA;Download FOSS (free and open source) tools:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;i class=&#34;fa-regular fa-file-code fa-lg&#34;&gt;&lt;/i&gt;&#xA;&lt;i class=&#34;fa-solid fa-superscript fa-lg&#34;&gt;&lt;/i&gt;&#xA;&lt;a href=&#34;https://www.latex-project.org/&#34;&gt;$\LaTeX$&lt;/a&gt;: a typesetting system often used by academians and&#xA;researchers.  It gives documents with a more impressive appearance.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;i class=&#34;fa-brands fa-windows fa-lg&#34;&gt;&lt;/i&gt;&#xA;Windows: &lt;a href=&#34;https://miktex.org/&#34;&gt;Mik$\TeX$&lt;/a&gt; → click &lt;strong&gt;Download&lt;/strong&gt; in the navbar&lt;/li&gt;&#xA;&lt;li&gt;&lt;i class=&#34;fa-brands fa-linux fa-lg&#34;&gt;&lt;/i&gt;&#xA;Linux: install &lt;a href=&#34;https://tug.org/texlive/&#34;&gt;$\TeX$ Live&lt;/a&gt; directly from the TUG ($\TeX$&#xA;User Group)&lt;/li&gt;&#xA;&lt;li&gt;&lt;i class=&#34;fa-brands fa-apple fa-lg&#34;&gt;&lt;/i&gt;&#xA;Mac OS: &lt;a href=&#34;https://www.tug.org/mactex/&#34;&gt;Mac$\TeX$&lt;/a&gt; (I&amp;rsquo;ve never used that.)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;i class=&#34;fa-regular fa-file-code fa-lg&#34;&gt;&lt;/i&gt;&#xA;&lt;i class=&#34;fa-solid fa-rotate fa-lg&#34;&gt;&lt;/i&gt;&#xA;&lt;i class=&#34;fa-solid fa-file-code fa-lg&#34;&gt;&lt;/i&gt;&#xA;&lt;a href=&#34;https://pandoc.org/&#34;&gt;pandoc&lt;/a&gt;: a document markup language converter (e.g.&#xA;&lt;i class=&#34;fa-brands fa-markdown fa-lg&#34;&gt;&lt;/i&gt; ↔︎&#xA;&lt;i class=&#34;fa-brands fa-html5 fa-lg&#34;&gt;&lt;/i&gt;, $\LaTeX$ ↔︎&#xA;&lt;i class=&#34;fa-regular fa-file-word fa-lg&#34;&gt;&lt;/i&gt;,&#xA;&lt;i class=&#34;fa-brands fa-markdown fa-lg&#34;&gt;&lt;/i&gt; →&#xA;&lt;i class=&#34;fa-regular fa-file-pdf fa-lg&#34;&gt;&lt;/i&gt;)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Some Public APIs to Be Viewed</title>
      <link>https://vincenttam.gitlab.io/post/2023-03-16-some-public-apis-to-be-viewed/</link>
      <pubDate>Thu, 16 Mar 2023 12:29:56 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2023-03-16-some-public-apis-to-be-viewed/</guid>
      <description>&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;API&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;description&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://jsonplaceholder.typicode.com/&#34;&gt;JSON Placeholder&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;mock REST APIs for development only&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://cloud.google.com/translate/docs/&#34;&gt;Google Translate&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;generate free translations up to a certain limit&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://openweathermap.org/api&#34;&gt;Open Weather Map&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;weather prediction across the world&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://restcountries.com/&#34;&gt;REST Countries&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;info about the world&amp;rsquo;s countries&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://ipapi.co/&#34;&gt;IP API&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;data about IP addresses&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://random-data-api.com/&#34;&gt;Random Data API&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;like the first one, but with a sharper focus on random data&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pokeapi.co/&#34;&gt;Pokemon API&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;info about Pokemon with recent introduction of GraphQL API&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;</description>
    </item>
    <item>
      <title>Merge Two PDF to Single Encrypted PDF</title>
      <link>https://vincenttam.gitlab.io/post/2023-03-15-merge-two-pdf-to-single-encrypted-pdf/</link>
      <pubDate>Wed, 15 Mar 2023 17:47:14 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2023-03-15-merge-two-pdf-to-single-encrypted-pdf/</guid>
      <description>&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;I have unprotected&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;code&gt;input1.pdf&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;input2.pdf&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;and I want to create one single &lt;code&gt;encrypted.pdf&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;my-try&#34;&gt;My try&lt;/h3&gt;&#xA;&lt;p&gt;I looked up &lt;a href=&#34;https://qpdf.readthedocs.io/en/stable/cli.html#page-selection&#34;&gt;QPDF&amp;rsquo;s manual&lt;/a&gt; and tried the following command.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;qpdf --empty --pages input{1,2}.pdf --encrypt upw opw 256 -- encrypted.pdf&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;but I got this error.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;qpdf: unrecognized argument --encrypt (pages options must be terminated with --)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;For help:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  qpdf --help=usage       usage information&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  qpdf --help=topic       help on a topic&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  qpdf --help=--option    help on an option&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  qpdf --help             general help and a topic list&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;solution&#34;&gt;Solution&lt;/h3&gt;&#xA;&lt;p&gt;The sentence inside the parentheses says it all.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Start an Online Empire Without a Job</title>
      <link>https://vincenttam.gitlab.io/post/2023-03-14-how-to-start-an-online-empire-without-a-job/</link>
      <pubDate>Tue, 14 Mar 2023 16:31:20 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2023-03-14-how-to-start-an-online-empire-without-a-job/</guid>
      <description>&lt;h3 id=&#34;difficulty&#34;&gt;Difficulty&lt;/h3&gt;&#xA;&lt;p&gt;To start an online empire from zero is not something that can be done easily.&#xA;One lacks the connection with experienced netizens who might know the inside&#xA;secrets.&lt;/p&gt;&#xA;&lt;h3 id=&#34;solution&#34;&gt;Solution&lt;/h3&gt;&#xA;&lt;p&gt;You may start your empire on &lt;a href=&#34;https://en.forgeofempires.com&#34;&gt;Forge of Empires&lt;/a&gt;.  You&amp;rsquo;ll be guided by a&#xA;beginner-friendly tutorial.  The daily tasks are easy and they will only take&#xA;you a few minutes, but they are rewarding.  You&amp;rsquo;ll end up earning thousands of&#xA;coins on the website.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ten Probably Handy Sites</title>
      <link>https://vincenttam.gitlab.io/post/2023-03-10-ten-probably-handy-sites/</link>
      <pubDate>Fri, 10 Mar 2023 09:34:13 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2023-03-10-ten-probably-handy-sites/</guid>
      <description>&lt;p&gt;A brief summary of &lt;a href=&#34;https://medium.com/illumination/10-incredibly-useful-websites-that-even-the-best-informed-internet-user-wouldnt-know-b04c8e73efa4&#34;&gt;&lt;em&gt;10 Incredibly Useful Websites&lt;/em&gt;&lt;/a&gt; on &lt;a href=&#34;https://medium.com/&#34;&gt;Medium&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;dl&gt;&#xA;&lt;dt&gt;&lt;a href=&#34;https://www.upword.ai/&#34;&gt;Upword.AI&lt;/a&gt; (paid)&lt;/dt&gt;&#xA;&lt;dd&gt;summarise stuff&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;a href=&#34;https://gamma.app/&#34;&gt;Gamma&lt;/a&gt; (free trial for the moment)&lt;/dt&gt;&#xA;&lt;dd&gt;get professional slides in min, not open source&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;a href=&#34;https://imgcreator.zmo.ai/&#34;&gt;IMGCreator&lt;/a&gt; (free, point-based)&lt;/dt&gt;&#xA;&lt;dd&gt;text/img → img, chatGPT powered&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;a href=&#34;https://popsy.co/&#34;&gt;Popsy&lt;/a&gt; (free to create, paid to publish)&lt;/dt&gt;&#xA;&lt;dd&gt;no-code website buider&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;a href=&#34;https://www.visualcapitalist.com/&#34;&gt;Visual Capitalist&lt;/a&gt; (free)&lt;/dt&gt;&#xA;&lt;dd&gt;explanatory charts&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;a href=&#34;https://www.typelit.io/&#34;&gt;TypeLit.io&lt;/a&gt; (free for some œuvres, paid for own book)&lt;/dt&gt;&#xA;&lt;dd&gt;type classics out to train typing&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;a href=&#34;https://www.zorp.one/&#34;&gt;Zorp.one&lt;/a&gt; (free for trial, paid for deploy)&lt;/dt&gt;&#xA;&lt;dd&gt;no-code app generator for businesses, e.g. delivery, store management, doc&#xA;collection&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;a href=&#34;https://kialo.com/&#34;&gt;Kialo&lt;/a&gt; (free)&lt;/dt&gt;&#xA;&lt;dd&gt;repository for debate arguments, with discussion topology&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;a href=&#34;https://nomadlist.com/&#34;&gt;Nomad List&lt;/a&gt; (free limited trial, paid content)&lt;/dt&gt;&#xA;&lt;dd&gt;good for remote workers, find remote work opportunities, insights into cities,&#xA;dating app (that I don&amp;rsquo;t recommend)&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;a href=&#34;https://www.supermeme.ai/&#34;&gt;SuperMeme&lt;/a&gt; (paid)&lt;/dt&gt;&#xA;&lt;dd&gt;AI meme generator&lt;/dd&gt;&#xA;&lt;/dl&gt;</description>
    </item>
    <item>
      <title>Encrypt PDF on Command Line</title>
      <link>https://vincenttam.gitlab.io/post/2023-03-04-encrypt-pdf-on-command-line/</link>
      <pubDate>Sat, 04 Mar 2023 14:45:05 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2023-03-04-encrypt-pdf-on-command-line/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;On M$ Win*, I don&amp;rsquo;t have dedicated PDF readers like &lt;a href=&#34;https://www.adobe.com/acrobat/pdf-reader.html&#34;&gt;Adobe&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;During visioconference, one might want to share some downloaded PDFs.  Those&#xA;documents can be part of an ebook or notes.  In some situations, they can&#xA;provide context to a discussion.&lt;/p&gt;&#xA;&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Under the same folder, you might have&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;downloaded_ebook.pdf&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;personal_info.pdf&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;other_personal_stuff.pdf&lt;/code&gt; that you don&amp;rsquo;t want to expose while streaming.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;However, each downloaded PDF usually comes with a name set by others.  It can be&#xA;tedious to rename them according to your own habits.  To protect users&amp;rsquo; privacy,&#xA;we can&lt;/p&gt;</description>
    </item>
    <item>
      <title>Adjust Git Bash Font and Window Size</title>
      <link>https://vincenttam.gitlab.io/post/2023-03-04-adjust-git-bash-font-and-window-size/</link>
      <pubDate>Sat, 04 Mar 2023 14:16:58 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2023-03-04-adjust-git-bash-font-and-window-size/</guid>
      <description>&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;p&gt;Make the characters larger and more readable.&lt;/p&gt;&#xA;&lt;h3 id=&#34;solution&#34;&gt;Solution&lt;/h3&gt;&#xA;&lt;p&gt;The option names might be found in the manual.  Sometimes, I find opening&#xA;MINGW&amp;rsquo;s settings through GUI helpful.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;FontHeight=12&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Columns=143&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Rows=36&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I&amp;rsquo;ve read &lt;a href=&#34;https://gist.github.com/gerarldlee/b971176550f2f9b44bf6&#34;&gt;Gerald Lee&amp;rsquo;s &lt;code&gt;.minttyrc&lt;/code&gt;&lt;/a&gt;.  I&amp;rsquo;ve enlarged the window size so&#xA;that in the standard output, one line can contain more info.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fujitsu LH532 Thermal Paste Application</title>
      <link>https://vincenttam.gitlab.io/post/2023-02-22-fujitsu-lh532-thermal-paste-application/</link>
      <pubDate>Wed, 22 Feb 2023 16:40:10 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2023-02-22-fujitsu-lh532-thermal-paste-application/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;My old laptop was bought ten years ago.  I had never changed the thermal paste&#xA;between its CPU and its fan.  As a result, it had been getting hot during my&#xA;online tutorials.&lt;/p&gt;&#xA;&lt;h3 id=&#34;photos&#34;&gt;Photos&lt;/h3&gt;&#xA;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;https://vincenttam.gitlab.io/css/hugo-easy-gallery.css&#34; /&gt;&#xA;&lt;div class=&#34;box&#34; &gt;&#xA;  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;&#xA;    &lt;div class=&#34;img&#34;&gt;&#xA;      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;IMG_20230218_103931066.jpg&#34; alt=&#34;thermal paste on CPU&#34;/&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;a href=&#34;IMG_20230218_103931066.jpg&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;&#xA;      &lt;figcaption&gt;&lt;h4&gt;thermal paste on CPU displaced after ten years&lt;/h4&gt;&#xA;      &lt;/figcaption&gt;&#xA;  &lt;/figure&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;box&#34; &gt;&#xA;  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;&#xA;    &lt;div class=&#34;img&#34;&gt;&#xA;      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;IMG_20230218_103956343.jpg&#34; alt=&#34;thermal paste on fan&#34;/&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;a href=&#34;IMG_20230218_103956343.jpg&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;&#xA;      &lt;figcaption&gt;&lt;h4&gt;thermal paste on fan displaced after ten years&lt;/h4&gt;&#xA;      &lt;/figcaption&gt;&#xA;  &lt;/figure&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;box&#34; &gt;&#xA;  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;&#xA;    &lt;div class=&#34;img&#34;&gt;&#xA;      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;IMG_20230218_104903563.jpg&#34; alt=&#34;CPU and fan cleaned&#34;/&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;a href=&#34;IMG_20230218_104903563.jpg&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;&#xA;      &lt;figcaption&gt;&lt;h4&gt;dried thermal paste cleaned and removed&lt;/h4&gt;&#xA;          &lt;p&gt;with isopropyl and kitchen towel&lt;/p&gt;</description>
    </item>
    <item>
      <title>Removed jQuery Dependency from My Math Editor</title>
      <link>https://vincenttam.gitlab.io/post/2022-10-19-removed-jquery-dependency-from-my-math-editor/</link>
      <pubDate>Wed, 19 Oct 2022 23:06:10 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-10-19-removed-jquery-dependency-from-my-math-editor/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://jquery.com/&#34;&gt;jQuery&lt;/a&gt; provides many handy functions to speed up the development, for example&#xA;&lt;code&gt;document.ready()&lt;/code&gt;, &lt;code&gt;element.toggle()&lt;/code&gt;, &lt;code&gt;element.hide()&lt;/code&gt;, etc.&#xA;&lt;a href=&#34;https://vincenttam.gitlab.io/math-live-preview/&#34;&gt;My math editor&lt;/a&gt; used some of them.  However, I replaced them with&#xA;Vanilla JavaScript at &lt;a href=&#34;https://gitlab.com/VincentTam/math-live-preview/-/commit/4a35c45b49740c286b3fe6378370eaa1ec0e8e27&#34;&gt;commit &lt;code&gt;4a35c45b&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;p&gt;Some users complained about the white background in the past versions of my&#xA;editor.  That had motivated me to refactor the code, so that it would be easier&#xA;to maintain and to add in new features.&lt;/p&gt;&#xA;&lt;h3 id=&#34;html5-input-types-used&#34;&gt;HTML5 input types used&lt;/h3&gt;&#xA;&lt;p&gt;Actual appearance might vary across browsers.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Showdown KaTeX With mhchem</title>
      <link>https://vincenttam.gitlab.io/post/2022-10-18-showdown-katex-with-mhchem/</link>
      <pubDate>Tue, 18 Oct 2022 13:46:01 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-10-18-showdown-katex-with-mhchem/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve written about &lt;a href=&#34;https://vincenttam.gitlab.io/post/2019-04-29-improved-integration-of-hugo-and-katex/&#34;&gt;bringing user-defined KaTeX macros into Hugo&lt;/a&gt; a few&#xA;years ago.  Looking back, I realized that I only knew how to copy code at that&#xA;time.&lt;/p&gt;&#xA;&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;To replace the current code for &lt;a href=&#34;https://vincenttam.gitlab.io/math-live-preview/&#34;&gt;my math editor&lt;/a&gt; with&#xA;&lt;a href=&#34;https://obedm503.github.io/showdown-katex/&#34;&gt;Showdown-KaTeX&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;To bring &lt;a href=&#34;https://mhchem.github.io/MathJax-mhchem/&#34;&gt;mhchem&lt;/a&gt; into &lt;a href=&#34;https://vincenttam.github.io/showdown-katex/&#34;&gt;my LaTeX + Markdown sandbox&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;motivation&#34;&gt;Motivation&lt;/h3&gt;&#xA;&lt;p&gt;To get the benefits of the three free (as in &amp;ldquo;freedom&amp;rdquo;) technologies.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.markdowntutorial.com/&#34;&gt;Markdown syntax&lt;/a&gt; is (much) simple(r than its LaTeX equivalent,&#xA;especially for tables, ordered/unordered lists, etc).&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://en.wikibooks.org/wiki/LaTeX/Mathematics&#34;&gt;LaTeX syntax for math&lt;/a&gt; is, in the long run, worth learning, so&#xA;that your fingers can stay on the keyboard while editing math expressions.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://mhchem.github.io/MathJax-mhchem/&#34;&gt;mhchem&lt;/a&gt; allows writing chemical equations conveniently as in the previous&#xA;point.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;However, Rattle has pointed out the&#xA;&lt;a href=&#34;https://blag.nullteilerfrei.de/2017/06/23/wordpress-katex-and-the-showdown/&#34;&gt;difficulties of mixing LaTeX and Markdown syntax&lt;/a&gt;.  In his proposed&#xA;solution for WordPress, he first renders KaTeX before moving to Markdown.  He&#xA;has provided an example use case with a dollar sign &lt;code&gt;$&lt;/code&gt; in a normal Markdown&#xA;content  (e.g. An apple costs $1.5.)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Exponential Function Product Rule</title>
      <link>https://vincenttam.gitlab.io/post/2022-09-19-exponential-function-product-rule/</link>
      <pubDate>Mon, 19 Sep 2022 14:23:17 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-09-19-exponential-function-product-rule/</guid>
      <description>&lt;h3 id=&#34;motivation-from-compound-interest&#34;&gt;Motivation from compound interest&lt;/h3&gt;&#xA;&lt;p&gt;Increase the number of times that the interest is compounded each year ($n$), so&#xA;as to increase the final amount of money ($A$)&lt;/p&gt;&#xA;&lt;div&gt;$$A = P \left(1 + \frac{r}{n}\right)^{nt}.$$&lt;/div&gt;&#xA;&lt;p&gt;$t$ and $r$ are the number of years and the interest rate &lt;em&gt;per annum&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;As $n$ becomes large, we can approximate the amount by&lt;/p&gt;&#xA;&lt;div&gt;$$A = P e^{rt}.$$&lt;/div&gt;&#xA;&lt;p&gt;The value of $A$ in the above formula is the amount compounded continuously.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Existence of Four Triangle Centers</title>
      <link>https://vincenttam.gitlab.io/post/2022-09-18-existence-of-four-triangle-centers/</link>
      <pubDate>Sun, 18 Sep 2022 12:14:55 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-09-18-existence-of-four-triangle-centers/</guid>
      <description>&lt;h3 id=&#34;settings&#34;&gt;Settings&lt;/h3&gt;&#xA;&lt;p&gt;Let&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;$P$ be an arbitrary reference point.&lt;/li&gt;&#xA;&lt;li&gt;$\triangle ABC$ be a triangle.&lt;/li&gt;&#xA;&lt;li&gt;$\vec{a} = \overrightarrow{PA}$, $\vec{b} = \overrightarrow{PB}$,&#xA;$\vec{c} = \overrightarrow{PC}$&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Remark: $O$ is reserved for circumcenter.&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;symbol&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;name&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;meaning&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$G$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;centroid&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;center of &lt;strong&gt;g&lt;/strong&gt;ravity&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$H$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;orthocenter&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;three &amp;ldquo;&lt;strong&gt;h&lt;/strong&gt;eights&amp;rdquo; are concurrent&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$I$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;incenter&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;center of &lt;strong&gt;i&lt;/strong&gt;nscribed circle&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;$O$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;circumcenter&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;center of circumscribed circle&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;centroid&#34;&gt;Centroid&lt;/h3&gt;&#xA;&lt;p&gt;Verify that $(\vec{a} + \vec{b} + \vec{c})/3$ satisfy the constraints.&lt;/p&gt;&#xA;&lt;h3 id=&#34;orthocenter&#34;&gt;Orthocenter&lt;/h3&gt;&#xA;&lt;p&gt;Let&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;$H$ be the point of intersection of two altitudes $AA_H$ and $BB_H$&lt;/li&gt;&#xA;&lt;li&gt;$\vec{h} = \overrightarrow{PH}$&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div&gt;&#xA;\begin{align}&#xA;(\vec{h} - \vec{a}) \cdot (\vec{b} - \vec{c}) &amp;= 0 \\&#xA;(\vec{h} - \vec{b}) \cdot (\vec{c} - \vec{a}) &amp;= 0&#xA;\end{align}&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Add these two equations together.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Katex Boxed Equations</title>
      <link>https://vincenttam.gitlab.io/post/2022-09-07-katex-boxed-equations/</link>
      <pubDate>Wed, 07 Sep 2022 01:39:20 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-09-07-katex-boxed-equations/</guid>
      <description>&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;p&gt;To render a bordered box with multiple equations.&lt;/p&gt;&#xA;&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;My &lt;a href=&#34;https://vincenttam.gitlab.io/post/2022-09-06-dot-products/&#34;&gt;previous article about dot products&lt;/a&gt; contains some boxed math&#xA;expressions: some are inline and some take up the whole line.&lt;/p&gt;&#xA;&lt;p&gt;For inline math, that&amp;rsquo;s simple: either $\fbox{text}$ or $\boxed{a=1}$ will do.&#xA;For displayed math, these two KaTeX commands will ignore the newline command&#xA;&lt;code&gt;\\&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;solution&#34;&gt;Solution&lt;/h3&gt;&#xA;&lt;p&gt;A simple Google search &amp;lsquo;&amp;ldquo;katex&amp;rdquo; AND &amp;ldquo;box&amp;rdquo;&amp;rsquo; saved the day.  It led me to&#xA;&lt;a href=&#34;https://stackoverflow.com/q/44667064/3184351&#34;&gt;this relevant Stack Overflow question&lt;/a&gt;, whose accepted answer&#xA;suggested the use of custom CSS.  I copied the CSS class name &lt;code&gt;boxedmath&lt;/code&gt; for my&#xA;blog.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tikz to SVG in VS Code</title>
      <link>https://vincenttam.gitlab.io/post/2022-09-06-tikz-to-svg-in-vs-code/</link>
      <pubDate>Tue, 06 Sep 2022 23:24:28 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-09-06-tikz-to-svg-in-vs-code/</guid>
      <description>&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;p&gt;View SVG graphics generated from Ti&lt;em&gt;k&lt;/em&gt;Z code in VS Code.&lt;/p&gt;&#xA;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;https://vincenttam.gitlab.io/css/hugo-easy-gallery.css&#34; /&gt;&#xA;&lt;div class=&#34;box&#34; &gt;&#xA;  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;&#xA;    &lt;div class=&#34;img&#34;&gt;&#xA;      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;goal.png&#34; alt=&#34;LaTeX TikZ coding &amp;#43; SVG preview in VS Code&#34;/&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;a href=&#34;goal.png&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;&#xA;      &lt;figcaption&gt;&lt;h4&gt;Compile TikZ code and preview SVG in VS Code&lt;/h4&gt;&#xA;          &lt;p&gt;with LaTeX Workship and SVG Preview&lt;/p&gt;&#xA;      &lt;/figcaption&gt;&#xA;  &lt;/figure&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h3 id=&#34;part-i-generate-svg-using-latex-workshop&#34;&gt;Part I: generate SVG using LaTeX Workshop&lt;/h3&gt;&#xA;&lt;p&gt;From the IDE&amp;rsquo;s parameters tab, I found the tools and recipes parameters.  I&#xA;clicked my user settings &lt;code&gt;settings.json&lt;/code&gt; twice: once through the tools, and once&#xA;through the recipes.  Each click generated an array of default recipes or tools.&#xA;Each of the former is a sequence of the later, which represents a command.  The&#xA;official examples and placeholders are easy to follow.  Here&amp;rsquo;s the two JSON&#xA;objects that I added.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dot Products</title>
      <link>https://vincenttam.gitlab.io/post/2022-09-06-dot-products/</link>
      <pubDate>Tue, 06 Sep 2022 11:39:46 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-09-06-dot-products/</guid>
      <description>&lt;h3 id=&#34;preface&#34;&gt;Preface&lt;/h3&gt;&#xA;&lt;p&gt;There&amp;rsquo;s a simpler derivation using&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;the geometric defintion&lt;/li&gt;&#xA;&lt;li&gt;linearity from the definition&lt;/li&gt;&#xA;&lt;li&gt;orthogonality of the canonical basic vectors $\vec{i}$, $\vec{j}$ and $\vec{k}$.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;If I had read that, I wouldn&amp;rsquo;t have type this document in LaTeX.  The following&#xA;content was transcribed from a PDF file that I made three days ago.&lt;/p&gt;&#xA;&lt;h3 id=&#34;content&#34;&gt;Content&lt;/h3&gt;&#xA;&lt;p&gt;Recall: $\sum_{i=m}^{n} a_{i}=a_{m}+a_{m+1}+a_{m+2}+\cdots +a_{n-1}+a_{n},$&#xA;where $m$, $n$ are integers.&lt;/p&gt;&#xA;&lt;p&gt;Example: $\sum_{i=3}^6 i^2 = 3^2 + 4^2 + 5^2 + 6^2 = 86$&lt;/p&gt;</description>
    </item>
    <item>
      <title>Functions for Arts</title>
      <link>https://vincenttam.gitlab.io/post/2022-09-05-functions-for-arts/</link>
      <pubDate>Mon, 05 Sep 2022 20:38:06 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-09-05-functions-for-arts/</guid>
      <description>&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;fct-slides.html&#34;&gt;my HTML slides&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;You may view the source code of this blog to see the source files.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;p&gt;To provide an introduction to the formal definition of functions for arts&#xA;stream students.&lt;/p&gt;&#xA;&lt;p&gt;I aim to&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;minimize the calculations&lt;/li&gt;&#xA;&lt;li&gt;use daily-life examples&lt;/li&gt;&#xA;&lt;li&gt;favor pictures over text.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;it-skills-used&#34;&gt;IT skills used&lt;/h3&gt;&#xA;&lt;h4 id=&#34;inkscape&#34;&gt;Inkscape&lt;/h4&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;code&gt;C-S-a&lt;/code&gt; for alignment.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;C-S-f&lt;/code&gt; for boundary and colors, and line patterns (i.e. arrows).&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;C-S-d&lt;/code&gt; for document size.&lt;/li&gt;&#xA;&lt;li&gt;clipping process:&#xA;&lt;ol&gt;&#xA;&lt;li&gt;prepare the object to be clipped.&lt;/li&gt;&#xA;&lt;li&gt;prepare the clip, which is on top of the previous object.&lt;/li&gt;&#xA;&lt;li&gt;select &lt;strong&gt;Object&lt;/strong&gt; → &lt;strong&gt;Clip&lt;/strong&gt; and then the first option from the top menu.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h4 id=&#34;dvisvgm&#34;&gt;dvisvgm&lt;/h4&gt;&#xA;&lt;p&gt;Use the TEX → DVI → SVG route with &lt;code&gt;latex&lt;/code&gt; and this tool with options&#xA;&lt;code&gt;--font-format=woff&lt;/code&gt; and &lt;code&gt;-b 5 -R -d 2&lt;/code&gt; to save file size and to ensure&#xA;that the SVG can be correctly opened on Inkscape.&lt;/p&gt;</description>
    </item>
    <item>
      <title>dvisvgm Guide for TikZ Pictures with Pattern Filling</title>
      <link>https://vincenttam.gitlab.io/post/2022-06-21-dvisvgm-guide-for-tikz-pictures-with-pattern-filling/</link>
      <pubDate>Tue, 21 Jun 2022 00:31:09 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-06-21-dvisvgm-guide-for-tikz-pictures-with-pattern-filling/</guid>
      <description>&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;I had issues in getting a SVG from a TikZ picture containing a pattern filling:&#xA;&lt;a href=&#34;https://github.com/mgieseki/dvisvgm/issues/158&#34;&gt;https://github.com/mgieseki/dvisvgm/issues/158&lt;/a&gt;.  The reported issue was&#xA;created last year, and it&amp;rsquo;s marked as fixed.  Nonetheless, I had this issue even&#xA;though my MikTeX was up-to-date.&lt;/p&gt;&#xA;&lt;h3 id=&#34;discussion&#34;&gt;Discussion&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;I wanted to confirm whether my &lt;code&gt;dvisvgm.exe&lt;/code&gt;, which had been shipped with&#xA;MikTeX, was latest.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I first asked at &lt;a href=&#34;https://github.com/mgieseki/dvisvgm/issues/184&#34;&gt;https://github.com/mgieseki/dvisvgm/issues/184&lt;/a&gt;, but I&#xA;was referred to MikTeX&amp;rsquo;s GitHub repository since it&amp;rsquo;s about the&#xA;MikTeX-packaged version of this tool.&lt;/li&gt;&#xA;&lt;li&gt;I am not sure about the technical explanation from the owner of dvisvgm at&#xA;&lt;a href=&#34;https://github.com/MiKTeX/miktex/issues/1112&#34;&gt;https://github.com/MiKTeX/miktex/issues/1112&lt;/a&gt;.  It seemed that I was&#xA;already using the latest stable version of this tool.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;I gave a MWE illustrating the problem with the graph of &lt;em&gt;y&lt;/em&gt; = (&lt;em&gt;x&lt;/em&gt; + 1)² with&#xA;region under the curve filled with a pattern in the above issue.  I knew that&amp;rsquo;s&#xA;probably off-topic, but the package owner might have some insights about the&#xA;problem.  It turned out that PDF → SVG was partly supported by dvisvgm.  Using&#xA;DVI → SVG, I managed to get the filling pattern, but I lost the beautiful&#xA;Computer Modern Roman fonts—that&amp;rsquo;s another issue.&lt;/li&gt;&#xA;&lt;li&gt;Hoping for a response from the owner for the previous problem, I started&#xA;&lt;a href=&#34;https://github.com/mgieseki/dvisvgm/issues/186&#34;&gt;https://github.com/mgieseki/dvisvgm/issues/186&lt;/a&gt;.  He suggested the use of&#xA;&lt;code&gt;--no-fonts&lt;/code&gt; or &lt;code&gt;--font-format=woff&lt;/code&gt;.  I observed no difference in the local&#xA;filesystem.  I uploaded everything I got through GitHub so that he could see&#xA;what my &lt;code&gt;dvisvgm.exe&lt;/code&gt; had output.  I didn&amp;rsquo;t expected that the Computer Modern&#xA;Roman fonts disappeared on GitHub side.  If I hadn&amp;rsquo;t asked there, I would have&#xA;never known that it&amp;rsquo;s the web browser&amp;rsquo;s security measure not to load the&#xA;embedded font data in a SVG loaded from a server.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;skills-learned&#34;&gt;Skills learned&lt;/h3&gt;&#xA;&lt;p&gt;Meaning of some commonly used parameters of dvisvgm:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Distance From a Line</title>
      <link>https://vincenttam.gitlab.io/post/2022-06-20-distance-from-a-line/</link>
      <pubDate>Mon, 20 Jun 2022 22:43:45 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-06-20-distance-from-a-line/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;A secondary school student posted a coordinate geometry question on a Discord&#xA;homework help server.  A helper replied to that question with an illustration of&#xA;the Perpendicular Distance Formula&lt;/p&gt;&#xA;&lt;div&gt;&#xA;$$ d((x_1,y_1), L) = \frac{\lvert Ax_1 + By_1 + C \rvert}{\sqrt{A^2 + B^2}}, $$&#xA;&lt;/div&gt;&#xA;&lt;p&gt;where $L$ is the line $Ax + By + C = 0$ without proof.&lt;/p&gt;&#xA;&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;p&gt;To provide an illustrated derivation of this formula.&lt;/p&gt;&#xA;&lt;h3 id=&#34;recall&#34;&gt;Recall&lt;/h3&gt;&#xA;&lt;p&gt;A basic property of the dot product: the &amp;ldquo;algebraic definition&amp;rdquo; is equivalent to&#xA;the &amp;ldquo;geometric definition&amp;rdquo;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Elementary Log Inequality</title>
      <link>https://vincenttam.gitlab.io/post/2022-06-18-elementary-log-inequality/</link>
      <pubDate>Sat, 18 Jun 2022 20:38:41 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-06-18-elementary-log-inequality/</guid>
      <description>&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;p&gt;Show that&lt;/p&gt;&#xA;&lt;div&gt;&#xA;$$ \ln (x) \le x - 1 $$&#xA;&lt;/div&gt;&#xA;&lt;p&gt;for all $x &amp;gt; 0$.&lt;/p&gt;&#xA;&lt;h3 id=&#34;proof-by-inverse-functions&#34;&gt;Proof by inverse functions&lt;/h3&gt;&#xA;&lt;p&gt;Think about their reflection along the line $y = x$ (i.e. their inverse&#xA;function).  Then we get&lt;/p&gt;&#xA;&lt;div&gt;&#xA;$$e^x \ge x + 1$$&#xA;&lt;/div&gt;&#xA;&lt;p&gt;for all $x \in \Bbb{R}$, which is obviously true.&lt;/p&gt;&#xA;&lt;h3 id=&#34;proof-by-definite-integrals&#34;&gt;Proof by definite integrals&lt;/h3&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s a second proof using definite integrals.&lt;/p&gt;&#xA;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;https://vincenttam.gitlab.io/css/hugo-easy-gallery.css&#34; /&gt;&#xA;&lt;div class=&#34;box&#34; &gt;&#xA;  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;&#xA;    &lt;div class=&#34;img&#34;&gt;&#xA;      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;case1.svg&#34; alt=&#34;PGF Plot for log inequality&#34;/&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;a href=&#34;case1.svg&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;&#xA;      &lt;figcaption&gt;&lt;h4&gt;Case 1: x &amp;gt; 1&lt;/h4&gt;&#xA;      &lt;/figcaption&gt;&#xA;  &lt;/figure&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;The rectangle $[1,x] \times [0,1]$ contains the region under the graph of the&#xA;reciprocal $y = 1/x$ in the domain $[1,x]$.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A Plot for Euler&#39;s Constant</title>
      <link>https://vincenttam.gitlab.io/post/2022-06-17-a-plot-for-euler-s-constant/</link>
      <pubDate>Fri, 17 Jun 2022 18:51:11 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-06-17-a-plot-for-euler-s-constant/</guid>
      <description>&lt;p&gt;I firsted tried with &lt;code&gt;foreach&lt;/code&gt;, but that would create so much paths.  I found&#xA;them difficult to operate on later, for example, with PGF plots library&#xA;fillbetween.  &lt;code&gt;const plot&lt;/code&gt; is a better solution.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-tex&#34; data-lang=&#34;tex&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\documentclass&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;standalone&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\usepackage&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;pgfplots&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\pgfplotsset&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;compat=1.18&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\usetikzlibrary&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;patterns&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\usepgfplotslibrary&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;fillbetween&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;document&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\newcommand\myN&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;8&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\pgfplotsset&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    axis lines=center,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    legend style=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;at=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;(1,1)&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;,anchor=north east,fill=none&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    title style=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;at=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;(0.5,1.05)&lt;span class=&#34;nb&#34;&gt;}}&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    every axis x label/.style=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        at=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;(ticklabel* cs:1)&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        anchor=west,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    every axis y label/.style=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        at=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;(ticklabel* cs:1)&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        anchor=south,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;tikzpicture&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;axis&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;[&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    title=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;sum of hatched region converges to Euler&amp;#39;s constant&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    xlabel=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ylabel=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    xmin=0,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    xmax=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;\the\numexpr\myN&lt;/span&gt;+2&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ymin=0,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ymax=1.3,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    xtick=&lt;span class=&#34;k&#34;&gt;\empty&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ytick=&lt;span class=&#34;k&#34;&gt;\empty&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    extra x ticks=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;1, &lt;span class=&#34;k&#34;&gt;\myN&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    extra x tick labels=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;, &lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;n&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    extra y ticks=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;1&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\addplot&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[name path=A,domain=1:\myN,samples=501,smooth]&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;1/x&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;\closedcycle&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\addlegendentry&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;y &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\frac&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}{x}&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\addplot&lt;/span&gt;+[domain=1:&lt;span class=&#34;k&#34;&gt;\myN&lt;/span&gt;+1,samples=&lt;span class=&#34;k&#34;&gt;\myN&lt;/span&gt;+1,jump mark left,blue,mark=*,mark options=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;draw=blue,fill=blue&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;] &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;1/x&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\addlegendentry&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;y &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\frac&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\lfloor&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt; x &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\rfloor&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\addplot&lt;/span&gt;+[name path=B,domain=1:&lt;span class=&#34;k&#34;&gt;\myN&lt;/span&gt;+1,samples=&lt;span class=&#34;k&#34;&gt;\myN&lt;/span&gt;+1,jump mark left,mark=none, draw=none] &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;1/x&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;\closedcycle&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\addplot&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[pattern=north east lines]&lt;/span&gt; fill between [of=A and B];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;axis&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;tikzpicture&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;document&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;https://vincenttam.gitlab.io/css/hugo-easy-gallery.css&#34; /&gt;&#xA;&lt;div class=&#34;box&#34; &gt;&#xA;  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;&#xA;    &lt;div class=&#34;img&#34;&gt;&#xA;      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;euler_no.svg&#34; alt=&#34;Euler&amp;#39;s constant&#34;/&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;a href=&#34;euler_no.svg&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;&#xA;      &lt;figcaption&gt;&lt;h4&gt;Euler&amp;#39;s constant illustration&lt;/h4&gt;&#xA;          &lt;p&gt;SVG generated by dvisvgm&lt;/p&gt;</description>
    </item>
    <item>
      <title>Simpler Diagram for Trigonometric Functions With Unit Circle</title>
      <link>https://vincenttam.gitlab.io/post/2022-06-15-simpler-diagram-for-trigonometric-functions-with-unit-circle/</link>
      <pubDate>Wed, 15 Jun 2022 16:15:33 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-06-15-simpler-diagram-for-trigonometric-functions-with-unit-circle/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;In my &lt;a href=&#34;https://vincenttam.gitlab.io/post/2022-06-03-trigonometric-functions-by-unit-circle/&#34;&gt;previous post about unit circle and trigonometric functions&lt;/a&gt;, I&#xA;included a graph with three trigonometry functions.  I&amp;rsquo;m quite satisfied with my&#xA;TikZ picture.&lt;/p&gt;&#xA;&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;Unluckily, a secondary school student found that my diagram was too complicated.&lt;/p&gt;&#xA;&lt;h3 id=&#34;solution&#34;&gt;Solution&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-tex&#34; data-lang=&#34;tex&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\documentclass&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[tikz,border=2pt]&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;standalone&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\usepackage&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;pgfplots&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\pgfplotsset&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;compat=1.18&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\usetikzlibrary&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;calc&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\newcommand\mytheta&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;110&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;c&#34;&gt;%angle theta&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;document&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;tikzpicture&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;[scale=2]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\coordinate&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[label=left:$O$]&lt;/span&gt; (O) at (0,0);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\coordinate&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[label=above left:${A = (\cos\theta, \sin\theta)}$]&lt;/span&gt; (A) at (&lt;span class=&#34;k&#34;&gt;\mytheta&lt;/span&gt;:1);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\coordinate&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[label=below left:${B = (\cos(-\theta), \sin(-\theta))}$]&lt;/span&gt; (B) at (-&lt;span class=&#34;k&#34;&gt;\mytheta&lt;/span&gt;:1);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\coordinate&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[label=right:$E$]&lt;/span&gt; (E) at (1,0);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt; (O) circle (1);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt; (A) -- (O)  node [midway, left] &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    -- (E);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt; (B) -- (O);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[-stealth]&lt;/span&gt; (&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;O&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)!&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;!(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;E&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;) arc (0:&lt;span class=&#34;k&#34;&gt;\mytheta&lt;/span&gt;:0.3) node[midway, above] &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\theta&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[-stealth]&lt;/span&gt; (&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;O&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)!&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;25&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;!(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;E&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;) arc (0:&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;-&lt;span class=&#34;k&#34;&gt;\mytheta&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;:0.25) node[midway, below] &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\theta&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;tikzpicture&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;document&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;unit-circle.svg&#34; alt=&#34;unit circle sine cosine&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tikz Illustration for Triangle Inequality</title>
      <link>https://vincenttam.gitlab.io/post/2022-06-11-tikz-illustration-for-triangle-inequality/</link>
      <pubDate>Sat, 11 Jun 2022 16:36:23 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-06-11-tikz-illustration-for-triangle-inequality/</guid>
      <description>&lt;p&gt;I thought the code would be easy, but it turned out that I spent one hour and&#xA;half to draw this figure.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;pic.svg&#34; alt=&#34;triangle inequality&#34;&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-tex&#34; data-lang=&#34;tex&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\documentclass&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[border=2pt,preview]&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;standalone&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\usepackage&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;tikz&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\usepackage&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;caption&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\newcommand&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;\sideA&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;2&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\newcommand&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;\sideB&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;3&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\newcommand&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;\sideC&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;6&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\colorlet&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;myred&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;red!40!yellow&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\colorlet&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;mygreen&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;green!40&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\colorlet&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;myblue&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;blue!20&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;document&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;figure&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\centering&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;tikzpicture&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;[thick]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\coordinate&lt;/span&gt; (A) at (0,0);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\coordinate&lt;/span&gt; (B) at (&lt;span class=&#34;k&#34;&gt;\sideC&lt;/span&gt;,0);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[&amp;lt;-&amp;gt;,&amp;gt;=stealth,myred]&lt;/span&gt; (A) -- ++ (-&lt;span class=&#34;k&#34;&gt;\sideA&lt;/span&gt;, 0) node [pos=0.5,below] &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\color&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{myred}{a}&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[&amp;lt;-&amp;gt;,&amp;gt;=stealth,mygreen]&lt;/span&gt; (B) -- ++ (&lt;span class=&#34;k&#34;&gt;\sideB&lt;/span&gt;, 0) node [pos=0.5,below] &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\color&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{mygreen}{b}&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[&amp;lt;-&amp;gt;,&amp;gt;=stealth,myblue]&lt;/span&gt; (A) --  (B) node [pos = 0.5, below]&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\color&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{myblue}{c}&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[dashed,myred]&lt;/span&gt; (A) circle (&lt;span class=&#34;k&#34;&gt;\sideA&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[dashed,mygreen]&lt;/span&gt; (B) circle (&lt;span class=&#34;k&#34;&gt;\sideB&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;tikzpicture&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\captionsetup&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;labelformat=empty&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\caption&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;triangle inequality &lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\color&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{myred}{a}} &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt; {&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\color&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{mygreen}{b}} &amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;  {&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\color&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{myblue}{c}}&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt; with &lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\color&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{myred}{a &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\sideA&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\color&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{mygreen}{b &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\sideB&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;, &lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\color&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{myblue}{c &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\sideC&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;figure&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;document&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The colors are customized for the Discord bot TeXit.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Git Warning: LF Will Be Replaced by CRLF</title>
      <link>https://vincenttam.gitlab.io/post/2022-06-10-git-warning-lf-will-be-replaced-by-crlf/</link>
      <pubDate>Fri, 10 Jun 2022 20:18:01 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-06-10-git-warning-lf-will-be-replaced-by-crlf/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m using Git Bash while writing this post.  I&amp;rsquo;ve never tested the commands on&#xA;*nix.&lt;/p&gt;&#xA;&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;Some of the tags and titles were written as &amp;ldquo;LateX&amp;rdquo;/&amp;ldquo;latex&amp;rdquo; in the source files.&#xA;I batch corrected them with Git Grep and GNU Sed.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git grep --name-only -IiE ^-&lt;span class=&#34;se&#34;&gt;\ &lt;/span&gt;latex&lt;span class=&#34;s1&#34;&gt;$&amp;#39;\r&amp;#39;&lt;/span&gt;? content/&lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;post,page&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt;xargs -n1 sed -i &lt;span class=&#34;s2&#34;&gt;&amp;#34;s/^- latex/- LaTeX/I&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I tried to match&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;a leading &lt;code&gt;-&lt;/code&gt; using &lt;code&gt;^-&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;a whitespace &lt;code&gt;\ &lt;/code&gt; escaped by a backslash to avoid wrapping the special&#xA;character below with double quotes&lt;/li&gt;&#xA;&lt;li&gt;the string &amp;ldquo;latex&amp;rdquo; (case-insensitive)&lt;/li&gt;&#xA;&lt;li&gt;the carriage return &lt;code&gt;\r&lt;/code&gt;, which is represented by &lt;code&gt;$&#39;\r&#39;&lt;/code&gt; in bash, for at&#xA;most once (&lt;code&gt;?&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;I observed that wrapping &lt;code&gt;$&#39;\r&#39;&lt;/code&gt; with &lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt; would lead to no match.&lt;/p&gt;</description>
    </item>
    <item>
      <title>LaTeX Table Background Color for TeXit</title>
      <link>https://vincenttam.gitlab.io/post/2022-06-10-latex-table-background-color-for-texit/</link>
      <pubDate>Fri, 10 Jun 2022 11:54:47 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-06-10-latex-table-background-color-for-texit/</guid>
      <description>&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;In &lt;a href=&#34;https://vincenttam.gitlab.io/post/2022-06-09-latex-multirow-multicol-table-coloring/&#34;&gt;my previous post about LaTeX tables&lt;/a&gt;, I used &lt;code&gt;\cellcolor{white}&lt;/code&gt; to&#xA;override the &lt;code&gt;\rowcolor{cyan}&lt;/code&gt; in a cell in the leftmost column, which was the&#xA;column type name.&lt;/p&gt;&#xA;&lt;p&gt;On Discord, that cell became black because TeXit inverted black and white.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;pblm.png&#34; alt=&#34;LaTeX table with TeXit problem&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;discussion&#34;&gt;Discussion&lt;/h3&gt;&#xA;&lt;p&gt;I first tried blending black and white, and I found that &lt;code&gt;black!27&lt;/code&gt; and&#xA;&lt;code&gt;black!28&lt;/code&gt; give a good approximation to Discord&amp;rsquo;s background color.&lt;/p&gt;&#xA;&lt;p&gt;Thanks to this &lt;a href=&#34;https://www.color-hex.com/color-palette/28549&#34;&gt;&lt;em&gt;Discord Color Palette&lt;/em&gt;&lt;/a&gt; and a bot command&#xA;channel on a server, I&amp;rsquo;ve observed that the desired color is RGB(54,57,62).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Line Equation in Intercept Form</title>
      <link>https://vincenttam.gitlab.io/post/2022-06-09-line-equation-in-intercept-form/</link>
      <pubDate>Thu, 09 Jun 2022 09:26:54 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-06-09-line-equation-in-intercept-form/</guid>
      <description>&lt;p&gt;This is a first draft of a TikZ picture illustraing this classical formula to be&#xA;used for math help channels.&lt;/p&gt;&#xA;&lt;p&gt;Adding &lt;code&gt;\caption{for the picture}&lt;/code&gt; without &amp;ldquo;Figure 1:&amp;rdquo; requires&#xA;&lt;code&gt;\usepackage{caption}&lt;/code&gt; and wrapping with &lt;code&gt;\begin{figure}&lt;/code&gt;.  It also possible to&#xA;use the primitive TeX command &lt;code&gt;\par&lt;/code&gt;, but it would be complicated to use that&#xA;with &lt;code&gt;standalone&lt;/code&gt;.  In the previous post, the SVG picture from the LaTeX table&#xA;in an &lt;code&gt;article&lt;/code&gt; has too much useless whitespace around the table.  I don&amp;rsquo;t&#xA;bother to learn other packages, as I need time for other more important stuff.&lt;/p&gt;</description>
    </item>
    <item>
      <title>LaTeX Multirow Multicol Table Coloring</title>
      <link>https://vincenttam.gitlab.io/post/2022-06-09-latex-multirow-multicol-table-coloring/</link>
      <pubDate>Thu, 09 Jun 2022 00:45:55 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-06-09-latex-multirow-multicol-table-coloring/</guid>
      <description>&lt;h3 id=&#34;inspiration&#34;&gt;Inspiration&lt;/h3&gt;&#xA;&lt;p&gt;Number of two-digit numbers not containing the digit &amp;lsquo;8&amp;rsquo;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;code&#34;&gt;Code&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The &lt;code&gt;standalone&lt;/code&gt; class can&amp;rsquo;t be used with &lt;code&gt;\caption&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;*{8}{c}&lt;/code&gt; means 8 &lt;code&gt;c&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;gt;{\columncolor{cyan}}c&lt;/code&gt; gives the column color.  It&#xA;&lt;code&gt;\usepackage[table]{xcolor}&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;\rowcolor{cyan}&lt;/code&gt; overrides the column colors.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;\cellcolor{white}&lt;/code&gt; overrides the above two commands.  It has to be carried&#xA;out one-by-one without any fancy package.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;\multicolumn{n}{&amp;lt;alignment&amp;gt;}{content}&lt;/code&gt; defines a multi-column cell.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;\multirow{n}{*}{content}&lt;/code&gt; defines a multi-row cell.  It&#xA;&lt;code&gt;\usepackage{multirow}&lt;/code&gt;.  It can&amp;rsquo;t contain &lt;code&gt;\multicolumn&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;\cline{i-j}&lt;/code&gt; draws a horizontal line above the row from column &lt;code&gt;i&lt;/code&gt; to column&#xA;&lt;code&gt;j&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;No fancy way of coloring multirow cells without fancy packages.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;\multirow{-9}&lt;/code&gt; at the last row creates a cell spanning nine rows from bottom&#xA;to above, so that its content won&amp;rsquo;t be covered by colors of former rows.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;\rotatebox[origin=[clr]]{angle}{content}&lt;/code&gt;: rotate &lt;code&gt;content&lt;/code&gt; by &lt;code&gt;angle&lt;/code&gt;&#xA;anticlockwise with &lt;code&gt;[clr]&lt;/code&gt; as the rotation center.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-tex&#34; data-lang=&#34;tex&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\documentclass&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[12pt]&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;article&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\usepackage&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;multirow&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\usepackage&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[table]&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;xcolor&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\usepackage&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;tikz&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;document&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;table&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;[htbp]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\centering&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\caption&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;Sample &lt;span class=&#34;k&#34;&gt;\LaTeX&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{}&lt;/span&gt; multirow table&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\vspace*&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;1ex&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\label&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;multiprogram&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;tabular&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;|c|c|*&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;8&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;c&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&amp;gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;\columncolor&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;cyan&lt;span class=&#34;nb&#34;&gt;}}&lt;/span&gt;cc|&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\hline&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\multicolumn&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;2&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;|c|&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;\multirow&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;2&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;*&lt;span class=&#34;nb&#34;&gt;}{}}&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;\multicolumn&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;10&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;c|&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;unit digit&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;\\\cline&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;3-12&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\multicolumn&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;2&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;|c|&lt;span class=&#34;nb&#34;&gt;}{}&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; 0 &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; 1 &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; 2 &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; 3 &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; 4 &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; 5 &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; 6 &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; 7 &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; 8 &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; 9 &lt;span class=&#34;k&#34;&gt;\\\hline&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; 1 &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;k&#34;&gt;\\&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; 2 &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;k&#34;&gt;\\&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; 3 &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;k&#34;&gt;\\&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; 4 &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;k&#34;&gt;\\&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; 5 &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;k&#34;&gt;\\&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; 6 &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;k&#34;&gt;\\&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; 7 &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;k&#34;&gt;\\&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\rowcolor&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;cyan&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;\cellcolor&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;white&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; 8 &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;k&#34;&gt;\\&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\multirow&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;-9&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;*&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;\rotatebox&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[origin=c]&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;90&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;tens digit&lt;span class=&#34;nb&#34;&gt;}}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; 9 &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;nb&#34;&gt;&amp;amp;&lt;/span&gt;  &lt;span class=&#34;k&#34;&gt;\\\hline&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;tabular&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;table&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;document&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Result:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Upgrade Font Awesome in Beautiful Hugo Theme</title>
      <link>https://vincenttam.gitlab.io/post/2022-06-07-upgrade-font-awesome-in-beautiful-hugo-theme/</link>
      <pubDate>Tue, 07 Jun 2022 13:02:33 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-06-07-upgrade-font-awesome-in-beautiful-hugo-theme/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/halogenica/beautifulhugo/&#34;&gt;Beautiful Hugo&lt;/a&gt; comes with Font Awesome icons.  However, it seems that it&amp;rsquo;s&#xA;no longer maintained.&lt;/p&gt;&#xA;&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;p&gt;To upgrade Font Awesome to the current stable version (6.1.1).&lt;/p&gt;&#xA;&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://fontawesome.com/docs/web/setup/host-yourself/webfonts#add-font-awesome-files-to-your-project&#34;&gt;official guide for self-hosting Font Awesome Web Fonts + CSS&lt;/a&gt;&#xA;suggests users to place the following files&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;filepath&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;role&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;/fontawesome/webfonts/&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Free Web Fonts&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;/fontawesome/css/all.min.css&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;CSS file for using Free Web Fonts&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;into somewhere in my theme.  The left column of the diagram features the folder&#xA;&lt;code&gt;assets/&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Second Homothety between Nine-Point Circle and Circumcircle</title>
      <link>https://vincenttam.gitlab.io/post/2022-06-06-second-homothety-between-nine-point-circle-and-circumcircle/</link>
      <pubDate>Mon, 06 Jun 2022 04:36:17 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-06-06-second-homothety-between-nine-point-circle-and-circumcircle/</guid>
      <description>&lt;h3 id=&#34;motivation&#34;&gt;Motivation&lt;/h3&gt;&#xA;&lt;p&gt;I saw someone illustrating his/her solution with a &amp;ldquo;superior triangle&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;source.png&#34; alt=&#34;original picture&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This reminds me the homothety about the centroid of factor −1/2.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;homothety2.svg&#34; alt=&#34;homothety about centroid&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The above picture &lt;code&gt;\usetikzlibrary{calc}&lt;/code&gt; for computing coordinates from those&#xA;of existing points.  &lt;code&gt;(A)!.25!(B)&lt;/code&gt; means &lt;code&gt;$(A)+.25[(B)-(A)]$&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-tex&#34; data-lang=&#34;tex&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;tikzpicture&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;[scale=2]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\coordinate&lt;/span&gt; (D) at (-0.7,1);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\coordinate&lt;/span&gt; (E) at (-1,0);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\coordinate&lt;/span&gt; (F) at (1,0);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\coordinate&lt;/span&gt; (A) at (&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;E&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)!&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;!(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;F&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\coordinate&lt;/span&gt; (B) at (&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;F&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)!&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;!(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;D&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\coordinate&lt;/span&gt; (C) at (&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;D&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)!&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;!(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;E&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\coordinate&lt;/span&gt; (G) at (&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;D&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)!&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;!(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;E&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)!&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;!(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;F&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt; (A) -- (B) -- (C) -- cycle;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt; (D) -- (E) -- (F) -- cycle;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;scriptsize&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\fill&lt;/span&gt; (G) circle (0.5pt) node [left=2pt,anchor=north]&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;G&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;scriptsize&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[-&amp;gt;,-latex,dashed]&lt;/span&gt; (D) -- (A);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[-&amp;gt;,-latex,dashed]&lt;/span&gt; (E) -- (B);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[-&amp;gt;,-latex,dashed]&lt;/span&gt; (F) -- (C);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;tikzpicture&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;previous-post&#34;&gt;Previous post&lt;/h3&gt;&#xA;&lt;p&gt;From the homothety between the nine-point circle and circumcircle about&#xA;orthocenter with a factor of 2, we see that the nine-point center is the&#xA;mid-point of orthocenter and circumcenter.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Basic Symmetries in Nine-Point Circle</title>
      <link>https://vincenttam.gitlab.io/post/2022-06-04-basic-symmetries-in-nine-point-circle/</link>
      <pubDate>Sat, 04 Jun 2022 22:29:26 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-06-04-basic-symmetries-in-nine-point-circle/</guid>
      <description>&lt;h3 id=&#34;motivation&#34;&gt;Motivation&lt;/h3&gt;&#xA;&lt;p&gt;Someone on Discord asked about the existence of the nine-point circle.  It&amp;rsquo;s&#xA;well-known that that can be proved by homothety.&lt;/p&gt;&#xA;&lt;h3 id=&#34;little-reminder-about-homothety&#34;&gt;Little reminder about homothety&lt;/h3&gt;&#xA;&lt;p&gt;Homothety preserves angles (and thus parallel lines).  Homothetic polygons are&#xA;similar, so the ratio of the corresponding sides is the same.  Considering the&#xA;radii of a circle under a homothety, we see that a homothety maps a circle to&#xA;another circle.&lt;/p&gt;&#xA;&lt;h3 id=&#34;notation&#34;&gt;Notation&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;H&lt;/em&gt;: orthocenter&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;G&lt;/em&gt;: centroid&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;O&lt;/em&gt;: circumcenter&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;ω&lt;/em&gt;: circumcircle&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;H&lt;sub&gt;A&lt;/sub&gt;&lt;/em&gt;: feet of altitude with respect to &lt;em&gt;A&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;M&lt;sub&gt;A&lt;/sub&gt;&lt;/em&gt;: midpoint of side &lt;em&gt;a&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;E&lt;sub&gt;A&lt;/sub&gt;&lt;/em&gt;: Euler point with respect to &lt;em&gt;A&lt;/em&gt;. (i.e. midpoint of &lt;em&gt;A&lt;/em&gt; and&#xA;&lt;em&gt;H&lt;/em&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://artofproblemsolving.com/wiki/index.php/Nine-point_circle&#34;&gt;second proof for nine-point circle on AoPS&lt;/a&gt; starts with a&#xA;proved fact that the reflection of &lt;em&gt;H&lt;/em&gt; about &lt;em&gt;a&lt;/em&gt; and &lt;em&gt;M&lt;sub&gt;A&lt;/sub&gt;&lt;/em&gt; lie on &lt;em&gt;ω&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dvisvgm&#39;s Issue With Fill Pattern</title>
      <link>https://vincenttam.gitlab.io/post/2022-06-04-dvisvgm-s-issue-with-fill-pattern/</link>
      <pubDate>Sat, 04 Jun 2022 20:56:57 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-06-04-dvisvgm-s-issue-with-fill-pattern/</guid>
      <description>&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;p&gt;Generate SVG file for TikZ graphics.&lt;/p&gt;&#xA;&lt;h3 id=&#34;method&#34;&gt;Method&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;TeX → PDF with PDFLaTeX&lt;/li&gt;&#xA;&lt;li&gt;PDF → SVG with &lt;code&gt;dvisvgm -P filename&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Example: I generated a PGF plot from the source code on&#xA;&lt;a href=&#34;https://vincenttam.gitlab.io/page/tikz-templates/&#34;&gt;my personal template&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;XPN8M.png&#34; alt=&#34;working SVG&#34;&gt;&lt;br&gt;&#xA;&lt;img src=&#34;iekQN.png&#34; alt=&#34;working PDF&#34;&gt;&lt;br&gt;&#xA;&lt;img src=&#34;PjQhe.png&#34; alt=&#34;Git Bash for PDF&#34;&gt;&lt;br&gt;&#xA;&lt;img src=&#34;H3F3b.png&#34; alt=&#34;Git Bash for SVG&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;When I applied this method to the following TeX code in my previous post,&#xA;&lt;code&gt;dvisvgm -P&lt;/code&gt; returns a blank SVG.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-tex&#34; data-lang=&#34;tex&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\documentclass&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[tikz,border=2pt]&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;standalone&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\usepackage&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;pgfplots&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\pgfplotsset&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;compat=1.6&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\usetikzlibrary&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;patterns&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;document&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;tikzpicture&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;axis&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;[axis lines=center,legend style=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;at=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;(0.7,0.7)&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;,anchor=south west&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\addplot&lt;/span&gt; [domain=-3:3, thick, smooth, yellow] &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt; 1/sqrt(2*pi)*exp(-x&lt;span class=&#34;nb&#34;&gt;^&lt;/span&gt;2/2) &lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\addlegendentry&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;y &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\frac&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\sqrt&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\pi&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}} e^{&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;x^&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\addplot&lt;/span&gt; [dashed, yellow] coordinates &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;(1.5,0) (1.5,0.14)&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\addlegendentry&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;99th percentile&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\addplot&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[domain=-3:1.5, pattern=north east lines,draw=none, fill opacity=0.3]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt; 1/sqrt(2*pi)*exp(-x&lt;span class=&#34;nb&#34;&gt;^&lt;/span&gt;2/2) &lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;\closedcycle&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;axis&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;tikzpicture&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;document&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This code passes the compiler.&lt;/p&gt;</description>
    </item>
    <item>
      <title>To Be Improved Normal Curve</title>
      <link>https://vincenttam.gitlab.io/post/2022-06-04-to-be-improved-normal-curve/</link>
      <pubDate>Sat, 04 Jun 2022 13:27:33 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-06-04-to-be-improved-normal-curve/</guid>
      <description>&lt;p&gt;Adaptations for &lt;code&gt;standalone&lt;/code&gt; documents:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;\usetikzlibrary{pattern}&lt;/code&gt; before &lt;code&gt;\begin{document}&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;\pgfplotsset{compat=1.6}&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-tex&#34; data-lang=&#34;tex&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;tikzpicture&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;axis&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt; [axis lines=center,legend style=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;at=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;(0.7,0.7)&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;,anchor=south west&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\addplot&lt;/span&gt; [domain=-3:3, thick, smooth, yellow] &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt; 1/sqrt(2*pi)*exp(-x&lt;span class=&#34;nb&#34;&gt;^&lt;/span&gt;2/2) &lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\addlegendentry&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;y &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\tfrac&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\sqrt&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\pi&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}} e^{&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;x^&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\addplot&lt;/span&gt; [dashed, yellow] coordinates &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;(1.5,0) (1.5,0.14)&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\addlegendentry&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;99th percentile&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\addplot&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[domain=-3:1.5, pattern=north east lines,draw=none, fill opacity=0.3]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt; 1/sqrt(2*pi)*exp(-x&lt;span class=&#34;nb&#34;&gt;^&lt;/span&gt;2/2) &lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;\closedcycle&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;axis&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;tikzpicture&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;shaded-region.svg&#34; alt=&#34;tikz function shaded region&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Trigonometric Functions by Unit Circle</title>
      <link>https://vincenttam.gitlab.io/post/2022-06-03-trigonometric-functions-by-unit-circle/</link>
      <pubDate>Fri, 03 Jun 2022 11:21:20 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-06-03-trigonometric-functions-by-unit-circle/</guid>
      <description>&lt;p&gt;For secondary school students, I define cosine and sine as the &lt;em&gt;x&lt;/em&gt; and&#xA;&lt;em&gt;y&lt;/em&gt;-components of the point &lt;em&gt;A&lt;/em&gt; (cos &lt;em&gt;θ&lt;/em&gt;, sin &lt;em&gt;θ&lt;/em&gt;) on the unit circle &lt;em&gt;x&lt;/em&gt;² +&#xA;&lt;em&gt;y&lt;/em&gt;² = 1, and the tangent function as the quotient of sine over cosine.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-tex&#34; data-lang=&#34;tex&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;tikzpicture&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;[scale=3]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\coordinate&lt;/span&gt; (O) at (0,0);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\coordinate&lt;/span&gt; (H) at (0.6,0);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\coordinate&lt;/span&gt; (A) at (0.6,0.8);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\coordinate&lt;/span&gt; (E) at (1,0);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\coordinate&lt;/span&gt; (T) at (1,0.8/0.6);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt; (O) circle (1);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[-&amp;gt;]&lt;/span&gt; (-1.3,0) -- (1.3,0) node [right]&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[-&amp;gt;]&lt;/span&gt; (0,-1.3) -- (0,1.3) node [above]&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;scope&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;[thick]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt; (O) node [below left] &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;O&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    -- (H) node [below right] &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;H&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    node [below, midway] &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\cos&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\theta&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    -- (A) node [below, midway, sloped] &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\sin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\theta&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    node [above=5pt] &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;A&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    -- cycle node [above left, midway] &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;scope&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;\clip&lt;/span&gt; (O) -- (A) -- (H) -- cycle;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt; (O) circle (0.1) node[right=7pt, above=5pt, anchor=west] &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;\small&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\theta&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;scope&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt; (H) rectangle ++(-0.1,0.1);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt; (E) rectangle ++(-0.1,0.1);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\draw&lt;/span&gt; (E) node [below right] &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;E&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    -- (T) node [below, midway, sloped] &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\tan&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\theta&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    node [above, right] &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;T&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    -- (A);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;scope&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;tikzpicture&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;unit-circle.svg&#34; alt=&#34;sine cosine unit circle&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Matrix Diagonalisation and Change of Basis</title>
      <link>https://vincenttam.gitlab.io/post/2022-06-02-matrix-diagonalisation-and-change-of-basis/</link>
      <pubDate>Thu, 02 Jun 2022 14:24:19 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-06-02-matrix-diagonalisation-and-change-of-basis/</guid>
      <description>&lt;p&gt;Here&amp;rsquo;s the $\LaTeX$ code of my diagram for matrix diagonalisation to be used on&#xA;Discord.&lt;/p&gt;&#xA;&lt;p&gt;Why do matrix diagonalisation on square matrix $P$?&lt;/p&gt;&#xA;&lt;p&gt;If we can find a diagonal matrix $D$ and a square matrix $Q$ such that&#xA;$P = QDQ^{-1}$, then we can easily compute $(P + \lambda I)^n$ for any scalar&#xA;$\lambda$ and integer $n$ because $D^n$ is easy to compute.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-tex&#34; data-lang=&#34;tex&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;sb&#34;&gt;\[&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{tikzcd}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;    {{}} &amp;amp; {{}} &amp;amp; &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\cdots&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt; &amp;amp; {} &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\\&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;    {{}} &amp;amp; {{}} &amp;amp; &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\cdots&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt; &amp;amp; {{}}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\arrow&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;&amp;#34;P&amp;#34;, from&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;, to&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\arrow&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;&amp;#34;{Q^{&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}}&amp;#34;&amp;#39;, from&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;, to&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\arrow&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;&amp;#34;D&amp;#34;&amp;#39;, from&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;, to&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\arrow&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;&amp;#34;Q&amp;#34;&amp;#39;, from&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;, to&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\arrow&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;&amp;#34;P&amp;#34;, from&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;, to&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\arrow&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;&amp;#34;D&amp;#34;&amp;#39;, from&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;, to&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\arrow&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;&amp;#34;P&amp;#34;, from&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;, to&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\arrow&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;&amp;#34;D&amp;#34;&amp;#39;, from&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;, to&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\arrow&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;&amp;#34;Q&amp;#34;&amp;#39;, from&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;, to&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{tikzcd}&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;\]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;After viewing the power of the Discord bot $\TeX{}$it, which renders $\LaTeX$&#xA;code on Discord, I gave up spending more time on exploring more functionalities&#xA;of $\KaTeX$ (say, commutative diagrams) because Discord and $\LaTeX$ spread&#xA;math knowledge much better than a static blog for basic math: the former allows&#xA;instant feedback from the reader.  The later is better for taking notes.  To&#xA;display more complicated graphics, I can compile to PDF first, then use&#xA;&lt;a href=&#34;https://dvisvgm.de/&#34;&gt;&lt;code&gt;dvisvgm&lt;/code&gt;&lt;/a&gt; with &lt;code&gt;-P&lt;/code&gt; for &lt;code&gt;--pdf&lt;/code&gt;.  (The small &lt;code&gt;-p&lt;/code&gt; selects&#xA;&lt;code&gt;--page=ranges&lt;/code&gt;.)&lt;/p&gt;</description>
    </item>
    <item>
      <title>LaTeX Code for Linear System</title>
      <link>https://vincenttam.gitlab.io/post/2022-06-01-latex-code-for-linear-system/</link>
      <pubDate>Wed, 01 Jun 2022 16:25:10 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2022-06-01-latex-code-for-linear-system/</guid>
      <description>&lt;div&gt;&#xA;\begin{align}&#xA;A\mathbf{x} &amp;= \mathbf{b} \\&#xA;\begin{pmatrix}&#xA;a_{11} &amp; a_{12} &amp; a_{13} \\&#xA;a_{21} &amp; a_{22} &amp; a_{23} \\&#xA;a_{31} &amp; a_{32} &amp; a_{33}&#xA;\end{pmatrix}&#xA;\begin{pmatrix} x_1 \\ x_2 \\ x_3 \end{pmatrix}&#xA;&amp;=&#xA;\begin{pmatrix} b_1 \\ b_2 \\ b_3 \end{pmatrix} \\&#xA;\begin{bmatrix}&#xA;\vert &amp; \vert &amp; \vert \\&#xA;\mathbf{a}_1 &amp; \mathbf{a}_2 &amp; \mathbf{a}_3 \\&#xA;\vert &amp; \vert &amp; \vert&#xA;\end{bmatrix}&#xA;\begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix}&#xA;&amp;= \mathbf{b} \\&#xA;x_1 \mathbf{a}_1 + x_2 \mathbf{a}_2 + x_3 \mathbf{a}_3 &amp;= \mathbf{b} \tag{$\star$} \\&#xA;\begin{pmatrix}&#xA;a_{11} x_1 + a_{12} x_2 + a_{13} x_3 \\&#xA;a_{21} x_1 + a_{22} x_2 + a_{23} x_3 \\&#xA;a_{31} x_1 + a_{32} x_2 + a_{33} x_3&#xA;\end{pmatrix}&#xA;&amp;=&#xA;\begin{pmatrix} b_1 \\ b_2 \\ b_3 \end{pmatrix} \\&#xA;x_1 \begin{pmatrix} a_{11} \\ a_{21} \\ a_{31} \end{pmatrix} +&#xA;x_2 \begin{pmatrix} a_{12} \\ a_{22} \\ a_{32} \end{pmatrix} +&#xA;x_3 \begin{pmatrix} a_{13} \\ a_{32} \\ a_{33} \end{pmatrix}&#xA;&amp;=&#xA;\begin{pmatrix} b_1 \\ b_2 \\ b_3 \end{pmatrix}&#xA;\end{align}&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Source code:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tikz Templates</title>
      <link>https://vincenttam.gitlab.io/page/tikz-templates/</link>
      <pubDate>Mon, 23 May 2022 14:12:18 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/page/tikz-templates/</guid>
      <description>&lt;p&gt;Load TikZ in either one way.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;\documentclass[tikz, border=2pt]{standalone}&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;\usepackage{tikz}&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;graph&#34;&gt;Graph&lt;/h3&gt;&#xA;&lt;h4 id=&#34;with-pgfplots&#34;&gt;With pgfplots&lt;/h4&gt;&#xA;&lt;p&gt;PGF Plots automizes the axes configurations, for example:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;major and minor ticks and labels on the axes&lt;/li&gt;&#xA;&lt;li&gt;major and minor grid lines&lt;/li&gt;&#xA;&lt;li&gt;legend styles and positioning&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Simplest example for Discord:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-tex&#34; data-lang=&#34;tex&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;tikzpicture&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;[declare function=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;f(&lt;span class=&#34;k&#34;&gt;\x&lt;/span&gt;)=(&lt;span class=&#34;k&#34;&gt;\x&lt;/span&gt;)&lt;span class=&#34;nb&#34;&gt;^&lt;/span&gt;2/2 - 5;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;axis&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;[&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  axis equal,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  grid=both,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  grid style=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;line width=.2pt, draw=gray&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  minor tick num=1,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  xtick=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;-4,-2,...,4&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ytick=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;-4,-2,...,4&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  axis lines=center,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  title=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;Graph of &lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;y &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;\frac&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt; x^&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\addplot&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[yellow,domain=-4:4]&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;f(&lt;span class=&#34;k&#34;&gt;\x&lt;/span&gt;)&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\pgfplotsset&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  grid style=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;gray&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  major grid style=&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;gray,line width=0.7&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;axis&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;tikzpicture&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;TeXit&amp;rsquo;s output:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Polar Rose in Julia</title>
      <link>https://vincenttam.gitlab.io/post/2021-08-25-polar-rose-in-julia/</link>
      <pubDate>Wed, 25 Aug 2021 17:00:56 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2021-08-25-polar-rose-in-julia/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;I&amp;rsquo;m doing exercise 4.9 of &lt;a href=&#34;https://benlauwens.github.io/ThinkJulia.jl/latest/book.html#_exercises_5&#34;&gt;&lt;em&gt;Think Julia&lt;/em&gt;&lt;/a&gt;, which asks for a function&#xA;for a polar rose using &lt;a href=&#34;https://juliagraphics.github.io/Luxor.jl/stable/reference/api/#Luxor.Turtle&#34;&gt;Luxor&amp;rsquo;s turtle graphics&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;difficulties&#34;&gt;Difficulties&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Work out the geometric structure of the family of polar roses.  The key is&#xA;to construct some auxiliary isoceles triangles and work out the angles between&#xA;them.  One sees that they are parametrized by two varaibles &lt;code&gt;n&lt;/code&gt; and &lt;code&gt;k&lt;/code&gt;.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;n&lt;/code&gt;: number of petals&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;k&lt;/code&gt;: petal increment&lt;/li&gt;&#xA;&lt;li&gt;constraint: &lt;code&gt;k ≠ n ÷ 2&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Handle the case when &lt;code&gt;gcd(n, k) &amp;gt; 1&lt;/code&gt;, i.e. more than one closed loop.&lt;/li&gt;&#xA;&lt;li&gt;The positive &lt;code&gt;x&lt;/code&gt; direction goes to the right; the positive &lt;code&gt;y&lt;/code&gt; direction goes&#xA;down.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;attempt&#34;&gt;Attempt&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Use &lt;code&gt;ThinkJulia.Reposition(t::Turtle, x, y)&lt;/code&gt; to reposition the turtle.&lt;/li&gt;&#xA;&lt;li&gt;Use &lt;code&gt;turn(t::Turtle, θ)&lt;/code&gt; to turn &lt;code&gt;t&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Use &lt;code&gt;ThinkJulia.Orientation(t::Turtle, θ)&lt;/code&gt; to restore the turtle&amp;rsquo;s&#xA;orientation after the move.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;code&#34;&gt;Code&lt;/h3&gt;&#xA;&lt;p&gt;I spend three days writing and testing this function.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Deploy Hugo Theme exampleSite With Github Actions</title>
      <link>https://vincenttam.gitlab.io/post/2021-03-06-deploy-hugo-theme-examplesite-with-github-actions/</link>
      <pubDate>Sat, 06 Mar 2021 13:39:05 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2021-03-06-deploy-hugo-theme-examplesite-with-github-actions/</guid>
      <description>&lt;h3 id=&#34;motivation&#34;&gt;Motivation&lt;/h3&gt;&#xA;&lt;p&gt;To test PRs on the upstream of a &lt;a href=&#34;https://themes.gohugo.io/&#34;&gt;Hugo theme&lt;/a&gt; by setting up a testing&#xA;branch.&lt;/p&gt;&#xA;&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;p&gt;To deploy a forked GitHub repo for a Hugo theme with &lt;code&gt;exampleSite&lt;/code&gt; to GitHub&#xA;Pages using &lt;a href=&#34;https://github.com/features/actions&#34;&gt;GitHub Actions&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The whole article is based on &lt;a href=&#34;https://github.com/VincentTam/hugo-future-imperfect-slim&#34;&gt;my fork of Hugo Future Imperfect Slim&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;references&#34;&gt;References&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/peaceiris/actions-hugo&#34;&gt;GitHub Actions for Hugo&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;A &lt;a href=&#34;https://stackoverflow.com/q/59383624/3184351&#34;&gt;Stack Overflow question showing &lt;code&gt;pwd&lt;/code&gt; in GitHub Actions&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;A &lt;a href=&#34;https://discourse.gohugo.io/t/how-do-i-do-theme-development-with-an-example-site-in-the-repo/2136/10&#34;&gt;Hugo Discourse post about testing &lt;code&gt;exampleSite&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;difficulties&#34;&gt;Difficulties&lt;/h3&gt;&#xA;&lt;p&gt;I had failed for about ten times before I got the job done.&lt;/p&gt;</description>
    </item>
    <item>
      <title>First Experience with ASP.NET Core MVC &amp; PostgreSQL</title>
      <link>https://vincenttam.gitlab.io/post/2021-03-01-first-experience-with-asp-net-core-mvc-postgresql/</link>
      <pubDate>Mon, 01 Mar 2021 17:29:50 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2021-03-01-first-experience-with-asp-net-core-mvc-postgresql/</guid>
      <description>&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;p&gt;To build an ASP.NET Core 5 MVC web app linked with a PostgreSQL.&lt;/p&gt;&#xA;&lt;h3 id=&#34;motivation&#34;&gt;Motivation&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;SQL Server is proprietary.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://docs.microsoft.com/aspnet/core/tutorials/first-mvc-app/adding-model?view=aspnetcore-5.0&amp;amp;tabs=visual-studio-code&#34;&gt;SQLite used in Microsoft&amp;rsquo;s ASP.NET Core 5 MVC tutorial&lt;/a&gt; isn&amp;rsquo;t made&#xA;for web apps.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.digitalocean.com/community/tutorials/sqlite-vs-mysql-vs-postgresql-a-comparison-of-relational-database-management-systems&#34;&gt;MySQL doesn&amp;rsquo;t perform well with concurrent read-writes&lt;/a&gt;.  It&amp;rsquo;s&#xA;dual-licensed like GitLab.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.reddit.com/r/dotnet/comments/8alghr/anyone_using_postgres_or_mysql_with_net_core/&#34;&gt;Some users find PostgreSQL cost-effective&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;useful-tutorials&#34;&gt;Useful tutorials&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;MS&amp;rsquo;s tutorial in item 2 above.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://youtu.be/md20lQut9EE&#34;&gt;Wes Doyle&amp;rsquo;s YouTube video&lt;/a&gt; goes through the steps&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://docs.microsoft.com/en-us/aspnet/core/data/ef-rp/migrations?view=aspnetcore-5.0&amp;amp;tabs=visual-studio-code&#34;&gt;MS&amp;rsquo;s tutorial for Razor Pages with EF Core migrations&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;steps&#34;&gt;Steps&lt;/h3&gt;&#xA;&lt;ol start=&#34;0&#34;&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Create a superuser in the database.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Deleted Question on Semi-Simple and Projective but not Injective Module</title>
      <link>https://vincenttam.gitlab.io/post/2021-01-14-deleted-question-on-semi-simple-and-projective-but-not-injective-module/</link>
      <pubDate>Thu, 14 Jan 2021 10:39:00 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2021-01-14-deleted-question-on-semi-simple-and-projective-but-not-injective-module/</guid>
      <description>&lt;p&gt;A backup of a deleted PSQ : &lt;a href=&#34;https://math.stackexchange.com/q/3955443/290189&#34;&gt;https://math.stackexchange.com/q/3955443/290189&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;OP : &lt;a href=&#34;https://math.stackexchange.com/users/859273/irfanmat&#34;&gt;irfanmat&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;It has a detailed answer by &lt;a href=&#34;https://math.stackexchange.com/users/663661/atticus-stonestrom&#34;&gt;Atticus Stonestrom&lt;/a&gt;.  It&amp;rsquo;s pity that his&#xA;post got deleted.  As there&amp;rsquo;s no reason for undeletion, I&amp;rsquo;m posting it here so&#xA;as to preserve the contents.&lt;/p&gt;&#xA;&lt;h3 id=&#34;question-body&#34;&gt;Question body&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Is there a semi-simple and projective but not injective module? I will be glad if you help.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;responses&#34;&gt;Response(s)&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;In the non-commutative case, the answer is yes. Consider $R$ the ring of upper&#xA;triangular $2\times 2$ matrices over a field $F$, and denote by $e_{ij}$ the&#xA;element of $R$ with the $ij$-th entry equal to $1$ and all other entries equal&#xA;to $0$. We can decompose $R$ as a direct sum of left ideals $$Re_{11}\oplus&#xA;(Re_{12}+Re_{22})=Re_{11}\oplus Re_{22},$$ so let $M=Re_{11}$. Then $M$ is&#xA;clearly simple, and – as a direct summand of the free module $R$ – is also&#xA;projective. However, $M$ is not injective; consider the map $f:Re_{11}\oplus&#xA;Re_{12}\to M$ taking $e_{11}$ and $e_{12}$ to $e_{11}$. $Re_{11}\oplus Re_{12}$&#xA;is a left ideal of $R$, but there is no way to extend $f$ to a map $R\rightarrow&#xA;M$, so this gives the desired example.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Another Math.SE Double Integral Using Polar Coordinate</title>
      <link>https://vincenttam.gitlab.io/post/2021-01-10-another-math-se-double-integral-using-polar-coordinate/</link>
      <pubDate>Sun, 10 Jan 2021 16:40:17 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2021-01-10-another-math-se-double-integral-using-polar-coordinate/</guid>
      <description>&lt;p&gt;I wanted to post the following answer to a &lt;a href=&#34;https://math.stackexchange.com/q/3979996/290189&#34;&gt;question on double integral&lt;/a&gt;&#xA;on Math.SE, but someone had submitted his work before I finished typing.  As a&#xA;result, I&amp;rsquo;m posting this on my personal blog.&lt;/p&gt;&#xA;&lt;p&gt;Let $r = \sqrt{x^2+4y^2}$ and $t = \begin{cases} \tan^{-1}(2y/x) &amp;amp;\text{&#xA;if } x &amp;gt; 0 \\ \pi/2 &amp;amp;\text{ if } x = 0. \end{cases}$  Then $\begin{cases}&#xA;x &amp;amp;= r \cos t \\ y &amp;amp;= (r \sin t)/2 \end{cases}$ and $D = { (r,t) \mid r \ge&#xA;0, t \in [\pi/4, \pi/2] }$.  Calculate the Jacobian&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ways to Draw Diagrams Displayed on Math.SE</title>
      <link>https://vincenttam.gitlab.io/post/2020-12-23-ways-to-draw-diagrams-displayed-on-math-se/</link>
      <pubDate>Wed, 23 Dec 2020 11:46:47 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2020-12-23-ways-to-draw-diagrams-displayed-on-math-se/</guid>
      <description>&lt;p&gt;I wanted to start a meta question, but I don&amp;rsquo;t see a point of that after viewing&#xA;some related posts listed at the end of the next subsection.&lt;/p&gt;&#xA;&lt;h3 id=&#34;intended-question&#34;&gt;Intended question&lt;/h3&gt;&#xA;&lt;p&gt;You may vote on your preferred way.&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Ways&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Advantages&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Disadvantages&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://math.meta.stackexchange.com/q/2324/290189&#34;&gt;AMScd&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;supported on Math.SE for a long time&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;ul&gt;&lt;li&gt;no diagonal arrows&lt;/li&gt;&lt;li&gt;syntax less well-known&lt;/li&gt;&lt;li&gt;Two-way arrows $\rightleftarrows$ look odd&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://math.meta.stackexchange.com/a/2325/290189&#34;&gt;&lt;code&gt;array&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;ul&gt;&lt;li&gt;supported on Math.SE for a long time&lt;/li&gt;&lt;li&gt;easier syntax&lt;/li&gt;&lt;li&gt;write basic diagonal arrows like $\nearrow$&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;ul&gt;&lt;li&gt;fine tuning spacing is hard&lt;/li&gt;&lt;li&gt;diagonal arrows only work for neighboring nodes&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://meta.stackexchange.com/a/321316/259305&#34;&gt;ASCIIFlow&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;WYSIWYG interface&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;lines are rendered as slashes in code&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;TikZ&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;ul&gt;&lt;li&gt;well known syntax&lt;/li&gt;&lt;li&gt;can draw pretty diagrams&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;not supported on SE, need to import as picture&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;others?&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;Related questions:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Combat Procrastination</title>
      <link>https://vincenttam.gitlab.io/post/2020-11-23-combat-procrastination/</link>
      <pubDate>Mon, 23 Nov 2020 09:06:04 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2020-11-23-combat-procrastination/</guid>
      <description>&lt;p&gt;My notes for a &lt;a href=&#34;https://youtu.be/zoa4nPgtTsU&#34;&gt;YouTube video about procrastination&lt;/a&gt; on one hearing only.&lt;/p&gt;&#xA;&lt;p&gt;Why?&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Boring tasks.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s necessary?&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Yes: Make it fun.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Get a study partner.&lt;/li&gt;&#xA;&lt;li&gt;Find a more energetic time.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;No: Get rid of it.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Surrounding environment.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Identify someone who procrastinates in your circle of influence.&lt;/li&gt;&#xA;&lt;li&gt;Distance yourself from them, or&lt;/li&gt;&#xA;&lt;li&gt;Be aware of what their behavior.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Perfectionism&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Know about yourself.&lt;/li&gt;&#xA;&lt;li&gt;Reality: nothing can be perfect.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Five strategies against procrastination:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Decompose a huge task into smaller parts.&lt;/p&gt;</description>
    </item>
    <item>
      <title>GIMP w&#39;ont Start after Ubuntu Distro Upgrade</title>
      <link>https://vincenttam.gitlab.io/post/2020-10-09-gimp-wont-start-after-ubuntu-distro-upgrade/</link>
      <pubDate>Fri, 09 Oct 2020 17:04:18 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2020-10-09-gimp-wont-start-after-ubuntu-distro-upgrade/</guid>
      <description>&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;After upgrading to Ubuntu 20.04 form 18.04, I wasn&amp;rsquo;t able to start &lt;a href=&#34;https://www.gimp.org&#34;&gt;GIMP&lt;/a&gt; 2.10.&#xA;The message was in the same format as that in a&#xA;&lt;a href=&#34;https://askubuntu.com/q/1152945/259048&#34;&gt;related Ask Ubuntu question&lt;/a&gt;, except that the version numbers were&#xA;greater.&lt;/p&gt;&#xA;&lt;p&gt;I attempted installing the package &lt;code&gt;gegl&lt;/code&gt;, which was irrelavant to the problem.&lt;/p&gt;&#xA;&lt;h3 id=&#34;analysis&#34;&gt;Analysis&lt;/h3&gt;&#xA;&lt;p&gt;I found the answers mentioning the package &lt;code&gt;libgegl&lt;/code&gt; helpful.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ dpkg -l | grep gegl&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ii  gegl                                       0.4.22-3                         &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     amd64        Generic Graphics Library Test Program&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ii  libgegl-0.4-0:amd64                        1:0.4.18+om-0ubu18.04.18~ppa     &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     amd64        Generic Graphics Library&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ii  libgegl-common                             1:0.4.18+om-0ubu18.04.18~ppa     &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     all          Generic Graphics Library - common files&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Despite deletion of &lt;code&gt;ppa:otto-kesselgulasch/gimp&lt;/code&gt; by &lt;code&gt;ppa-purge&lt;/code&gt;, that leaves a&#xA;trace in &lt;code&gt;/etc/apt/sources.list.d&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Recover Mysql Root Password</title>
      <link>https://vincenttam.gitlab.io/post/2020-10-07-recover-mysql-root-password/</link>
      <pubDate>Wed, 07 Oct 2020 13:13:08 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2020-10-07-recover-mysql-root-password/</guid>
      <description>&lt;p&gt;Just a little linklog to a &lt;a href=&#34;https://www.howtoforge.com/setting-changing-resetting-mysql-root-passwords#recover-lost-mysql-root-password&#34;&gt;relevant page on How to Forge&lt;/a&gt;.  Root&#xA;privileges are needed.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Stop service: &lt;code&gt;service mysql stop&lt;/code&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Start MySQL server w/o password: &lt;code&gt;mysqld_safe --skip-grant-tables &amp;amp;&lt;/code&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Connect to CLI client as root: &lt;code&gt;mysql -u root&lt;/code&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Reset root password.  Here&amp;rsquo;s the syntax for ≥v.5.7.6.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mysql&amp;gt; use mysql;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mysql&amp;gt; SET PASSWORD FOR &amp;#39;root&amp;#39;@&amp;#39;localhost&amp;#39; = PASSWORD(&amp;#34;newpass&amp;#34;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mysql&amp;gt; flush privileges;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mysql&amp;gt; quit&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Repeat step 1, or &lt;code&gt;killall mysqld&lt;/code&gt; if it doesn&amp;rsquo;t work.  Output can be&#xA;different on different Linux distro.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pandoc LaTeX Mermaid on GitLab CI</title>
      <link>https://vincenttam.gitlab.io/post/2020-08-28-pandoc-latex-mermaid-on-gitlab-ci/</link>
      <pubDate>Fri, 28 Aug 2020 09:26:29 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2020-08-28-pandoc-latex-mermaid-on-gitlab-ci/</guid>
      <description>&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;p&gt;To provide an open-source alternative to the Docker image&#xA;&lt;a href=&#34;https://hub.docker.com/r/escalope/pandoc-mermaid-plantuml&#34;&gt;escalope/pandoc-mermaid-plantuml&lt;/a&gt;, whose &lt;code&gt;Dockerfile&lt;/code&gt; isn&amp;rsquo;t&#xA;available.&lt;/p&gt;&#xA;&lt;p&gt;The rationale behind these difficult setup is simple: construct informative&#xA;&lt;a href=&#34;https://mermaid-js.github.io/&#34;&gt;Mermaid&lt;/a&gt; diagram with intuitive &lt;a href=&#34;https://daringfireball.net/projects/markdown&#34;&gt;Markdown&lt;/a&gt; syntax in an open-source and&#xA;economic way.&lt;/p&gt;&#xA;&lt;p&gt;This &lt;a href=&#34;https://gitlab.com/VincentTam/pandoc-mermaid-docker/container_registry&#34;&gt;newly constructed Docker image&lt;/a&gt; is entirely on GitLab.  No&#xA;Docker Hub account is needed.  For sample usage, consult &lt;code&gt;.gitlab-ci.yml&lt;/code&gt; in&#xA;&lt;a href=&#34;https://gitlab.com/VincentTam/test_pandoc&#34;&gt;my test project&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;difficulties&#34;&gt;Difficulties&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;issues &lt;a href=&#34;https://github.com/raghur/mermaid-filter/issues/51&#34;&gt;raghur/mermaid-filter#51&lt;/a&gt; and &lt;a href=&#34;https://github.com/raghur/mermaid-filter/issues/52&#34;&gt;#52&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;issue &lt;a href=&#34;https://gitlab.com/gitlab-org/gitlab-runner/-/issues/4566#note_199261985&#34;&gt;gitlab-org/gitlab-runner#4566&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;useful-codearticles&#34;&gt;Useful code/articles&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/time-machine-project/requests-for-comments/blob/470b0c5fdb8c1375ab8726c86b453cb9945e4be2/build/Dockerfile&#34;&gt;time-machine-project/requests-for-comments@&lt;code&gt;470b0c5&lt;/code&gt;&lt;/a&gt; &lt;code&gt;Dockerfile&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://sandtable.com/reduce-docker-image-sizes-using-alpine/&#34;&gt;&lt;em&gt;Reduce Docker Image Sizes Using Alpine&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://blog.callr.tech/building-docker-images-with-gitlab-ci-best-practices/&#34;&gt;&lt;em&gt;Best practices for building docker images with GitLab CI&lt;/em&gt;&lt;/a&gt;&#xA;with &lt;a href=&#34;https://gist.github.com/florentchauveau/2dc4da0299d42258606fc3b0e148fc07&#34;&gt;the accompanying gist&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;The code block in the highlighted comment in item 2 of the above section&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pandoc.org/installing.html#docker&#34;&gt;pandoc installation for Docker&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Sample &lt;code&gt;Dockerfile&lt;/code&gt; for Alpine Linux in the &lt;a href=&#34;https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#running-on-alpine&#34;&gt;troubleshooting of Puppeteer&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/sc250024/docker-mermaid-cli/blob/3c9ddb5fa7f240bbc96488674ae506ec091735d8/src/puppeteerConfigFile.json&#34;&gt;sc250024/docker-mermaid-cli@&lt;code&gt;3c9ddb5&lt;/code&gt;&lt;/a&gt; &lt;code&gt;src/puppeteerConfigFile.json&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/raghur/mermaid-filter&#34;&gt;raghur/mermaid-filter&lt;/a&gt; project README&amp;rsquo;s section about Puppeteer config&#xA;file&lt;/li&gt;&#xA;&lt;/ol&gt;</description>
    </item>
    <item>
      <title>Site Maintenance for Hugo v0.60</title>
      <link>https://vincenttam.gitlab.io/post/2020-04-14-site-maintenance-for-hugo-v060/</link>
      <pubDate>Tue, 14 Apr 2020 16:33:31 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2020-04-14-site-maintenance-for-hugo-v060/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;I lacked motivation to keep &lt;a href=&#34;https://gitlab.com/VincentTam/beautifulhugo&#34;&gt;this tweaked theme&lt;/a&gt; up with &lt;a href=&#34;https;//gohugo.io&#34;&gt;Hugo&lt;/a&gt;&amp;rsquo;s&#xA;development after last summer.  When I came back yesterday, I saw that some&#xA;pages using &lt;a href=&#34;https://fontawesome.com&#34;&gt;Font Awesome&lt;/a&gt; icons were broken.  Apart from that, the&#xA;&lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-09-17-fix-hugo-table-of-contents/&#34;&gt;ToC list level problem&lt;/a&gt; resurfaced.&lt;/p&gt;&#xA;&lt;h3 id=&#34;fixed-toc&#34;&gt;Fixed ToC&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-09-27-better-hugo-toc-fix/&#34;&gt;solution that I had adopted&lt;/a&gt; no longer worked.  Luckily, some&#xA;users provided a shorter code in the later discussions.  The&#xA;&lt;a href=&#34;https://github.com/gohugoio/hugo/issues/1778#issuecomment-483880269&#34;&gt;one from user501254&lt;/a&gt; caught me.  I first tried to copy his code into the&#xA;partial layout for ToC.  However, nothing changed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Set up GitHub Actions for Beautiful Jekyll</title>
      <link>https://vincenttam.gitlab.io/post/2019-09-02-set-up-github-actions-for-beautiful-jekyll/</link>
      <pubDate>Mon, 02 Sep 2019 23:23:25 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-09-02-set-up-github-actions-for-beautiful-jekyll/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://github.com/features/actions&#34;&gt;GitHub Actions&lt;/a&gt; provide &lt;a href=&#34;https://help.github.com/en/articles/setting-up-continuous-integration-on-github&#34;&gt;CI/CD support&lt;/a&gt;, which might interest many&#xA;&lt;a href=&#34;https://github.com&#34;&gt;GitHub&lt;/a&gt; users.  I&amp;rsquo;ve applied for this feature a week ago.  Luckily, my&#xA;application for the trial was approved by &lt;a href=&#34;https://github.com&#34;&gt;GitHub&lt;/a&gt;.  Tonight, I&amp;rsquo;ve found the&#xA;motivation for making my first step in my forked repo&#xA;&lt;a href=&#34;https://github.com/VincentTam/beautiful-jekyll&#34;&gt;VincentTam/beautiful-jekyll&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;My setup:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Clicked on the &amp;ldquo;&lt;strong&gt;Action&lt;/strong&gt;&amp;rdquo; tab of the repo.&lt;/li&gt;&#xA;&lt;li&gt;Chose the &lt;a href=&#34;https://github.com/actions/starter-workflows/blob/master/ci/jekyll.yml&#34;&gt;workflow file template for &lt;strong&gt;Jekyll&lt;/strong&gt;&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Added a slash &lt;code&gt;/&lt;/code&gt; in front of &lt;code&gt;srv&lt;/code&gt; in &lt;code&gt;chmod 777 srv/jekyll&lt;/code&gt;, so as to fix&#xA;the &lt;a href=&#34;https://github.com/VincentTam/beautiful-jekyll/commit/2d0370a1f93818a8a8e19dc364e8906ee76aedd7/checks#step:3:6&#34;&gt;&amp;ldquo;no such file or directory&amp;rdquo; error&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Added the parameter &lt;code&gt;repository: {your repo name}&lt;/code&gt; in the site config file&#xA;&lt;code&gt;_config.yml&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;The action should be &lt;a href=&#34;https://github.com/VincentTam/beautiful-jekyll/runs/210132383&#34;&gt;successfully configured&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Customized Archetype for This Site</title>
      <link>https://vincenttam.gitlab.io/post/2019-08-10-customized-archetype-for-this-site/</link>
      <pubDate>Sat, 10 Aug 2019 16:28:46 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-08-10-customized-archetype-for-this-site/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;I prefer including the date into the Permalink of a post.  Everytime I create&#xA;a new post, I type&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;hugo new post/$(date -I)-post-title.md&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;to ensure that the date is correct.&lt;/p&gt;&#xA;&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;code&gt;title&lt;/code&gt; field in the post&amp;rsquo;s front matter contained the date, which &lt;em&gt;wasn&amp;rsquo;t&lt;/em&gt;&#xA;something that I wanted because it&amp;rsquo;s already shown next to the&#xA;&lt;i class=&#34;fas fa-clock&#34; aria-hidden&gt;&lt;/i&gt; icon.&lt;/p&gt;&#xA;&lt;h3 id=&#34;observations&#34;&gt;Observations&lt;/h3&gt;&#xA;&lt;p&gt;Neither &lt;code&gt;\d&lt;/code&gt; nor &lt;code&gt;[\d]&lt;/code&gt; works for the PCRE character class &lt;code&gt;\d&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Icon in Hugo Navbar</title>
      <link>https://vincenttam.gitlab.io/post/2019-08-10-icon-in-hugo-navbar/</link>
      <pubDate>Sat, 10 Aug 2019 14:53:00 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-08-10-icon-in-hugo-navbar/</guid>
      <description>&lt;h3 id=&#34;motivation&#34;&gt;Motivation&lt;/h3&gt;&#xA;&lt;p&gt;The original navbar in words took up half of the horizontal spaces of the&#xA;viewport.  I &lt;em&gt;couldn&amp;rsquo;t&lt;/em&gt; add new items like &amp;ldquo;&lt;strong&gt;Tags&lt;/strong&gt;&amp;rdquo; to display the tag list.&lt;/p&gt;&#xA;&lt;h3 id=&#34;work&#34;&gt;Work&lt;/h3&gt;&#xA;&lt;p&gt;Thanks to the &lt;code&gt;pre&lt;/code&gt; field in &lt;a href=&#34;https://gohugo.io/content-management/menus/&#34;&gt;Hugo Menus&lt;/a&gt;, one can easily add the icon&#xA;as an HTML element by &lt;a href=&#34;https://gitlab.com/VincentTam/vincenttam.gitlab.io/commit/0083a60e28d896ac7560bc7b9ceb6f44deb77825#6fbe99d7b7ed353c112a4a34023b89b2cc76230b&#34;&gt;some editing on the template file&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{ range .Site.Menus.main.ByWeight }}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  {{ if .HasChildren }}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;lt;li class=&amp;#34;navlinks-container&amp;#34;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {{ if .Pre }}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;lt;a class=&amp;#34;navlinks-parent&amp;#34; title=&amp;#34;{{ .Name }}&amp;#34;&amp;gt;{{ .Pre }}&amp;lt;/a&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {{ else }}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;lt;a class=&amp;#34;navlinks-parent&amp;#34;&amp;gt;{{ .Name }}&amp;lt;/a&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {{ end }}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;lt;div class=&amp;#34;navlinks-children&amp;#34;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        {{ range .Children }}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          {{ if .Pre }}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &amp;lt;a title=&amp;#34;{{ .Name }}&amp;#34; href=&amp;#34;{{ .URL | relLangURL }}&amp;#34;&amp;gt;{{ .Pre }}&amp;lt;/a&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          {{ else }}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &amp;lt;a href=&amp;#34;{{ .URL  | relLangURL }}&amp;#34;&amp;gt;{{ .Name }}&amp;lt;/a&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          {{ end }}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        {{ end }}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;lt;/div&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;lt;/li&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  {{ else }}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;lt;li&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {{ if .Pre }}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;lt;a title=&amp;#34;{{ .Name }}&amp;#34; href=&amp;#34;{{ .URL | relLangURL }}&amp;#34;&amp;gt;{{ .Pre }}&amp;lt;/a&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {{ else }}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &amp;lt;a href=&amp;#34;{{ .URL | relLangURL }}&amp;#34;&amp;gt;{{ .Name }}&amp;lt;/a&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      {{ end }}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;lt;/li&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  {{ end }}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{{ end }}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Network Interface Name Detection in Conky</title>
      <link>https://vincenttam.gitlab.io/post/2019-08-08-network-interface-name-detection-in-conky/</link>
      <pubDate>Thu, 08 Aug 2019 18:42:08 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-08-08-network-interface-name-detection-in-conky/</guid>
      <description>&lt;p&gt;When one changes connection type (say, from ethernet to Wi-Fi), the interface&#xA;name changes (e.g. &lt;code&gt;eth0&lt;/code&gt; → &lt;code&gt;wlan1&lt;/code&gt;).  To avoid changing &lt;a href=&#34;https://github.com/brndnmtthws/conky&#34;&gt;Conky&lt;/a&gt; config file all&#xA;the time, here&amp;rsquo;s a little &lt;a href=&#34;https://www.lua.org/&#34;&gt;Lua&lt;/a&gt; function for finding the network interface name.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-lua&#34; data-lang=&#34;lua&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;function&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;findInterface&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kd&#34;&gt;local&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;handle&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;io.popen&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;ip a | grep &amp;#34;state UP&amp;#34; | cut -d: -f2 | tr -d &amp;#34; &amp;#34;&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kd&#34;&gt;local&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;result&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;handle&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;read&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;*a&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;gsub&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\n&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;$&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;handle&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;close&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kr&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;result&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;end&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;ip a&lt;/code&gt; gives everything about connection info.  Each entry looks like&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt; 3: wlp3s0f0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state UP group default qlen 1000&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Grep the &amp;ldquo;state UP&amp;rdquo; and extract the second field, using &lt;code&gt;:&lt;/code&gt; as a delimiter.&#xA;Trim off the spaces around.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Staticman Script in Pure JS</title>
      <link>https://vincenttam.gitlab.io/post/2019-08-05-staticman-script-in-pure-js/</link>
      <pubDate>Mon, 05 Aug 2019 09:56:16 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-08-05-staticman-script-in-pure-js/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://github.com/eduardoboucas/popcorn/blob/gh-pages/js/main.js&#34;&gt;The official Staticman script sample&lt;/a&gt; depends on &lt;a href=&#34;https://jquery.com/&#34;&gt;jQuery&lt;/a&gt;.  I have been&#xA;using &lt;a href=&#34;https://jquery.com/&#34;&gt;jQuery&lt;/a&gt; in my Staticman script for &lt;a href=&#34;https://vincenttam.gitlab.io/post/2019-07-30-more-static-nested-comments/&#34;&gt;nested comments&lt;/a&gt; for more than&#xA;six months.&lt;/p&gt;&#xA;&lt;p&gt;Recently, in the &lt;a href=&#34;https://github.com/onweru/hugo-swift-theme/releases/tag/v1.0.0&#34;&gt;new release of Hugo Swift Theme&lt;/a&gt;, in which I&amp;rsquo;m a&#xA;collaborator, one has removed all &lt;a href=&#34;https://jquery.com/&#34;&gt;jQuery&lt;/a&gt; methods at commit &lt;a href=&#34;https://github.com/onweru/hugo-swift-theme/commit/f137efa4cc8cd37d146553666dc007ee11a2cbba#diff-fd41383df4389ed6ee75f68becb796d1&#34;&gt;&lt;code&gt;f137efa4&lt;/code&gt;&lt;/a&gt;.&#xA;Here&amp;rsquo;s the structure of the script:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;auxiliary functions like &lt;code&gt;elem&lt;/code&gt;, &lt;code&gt;elems&lt;/code&gt;, &lt;code&gt;pushClass&lt;/code&gt;, &lt;code&gt;deleteClass&lt;/code&gt;, etc.&lt;/li&gt;&#xA;&lt;li&gt;A self-executing function &lt;code&gt;comments()&lt;/code&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;some necessary local variables&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;handleForm()&lt;/code&gt; consisting merely of an event listener handling form&#xA;submission.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;formToJSON(form)&lt;/code&gt; for converting the comment form to a JSON string.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;fetch(url, {...}).then(...).catch(...)&lt;/code&gt; for submitting a sever&#xA;request and handling its response.  It calls &lt;code&gt;showModal(...)&lt;/code&gt; and it&#xA;contains &lt;code&gt;resetForm()&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;a conditional &lt;code&gt;form ? handleForm(form) : false;&lt;/code&gt; to execute the above&#xA;method provided the existence of the comment form.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;closeModal()&lt;/code&gt; and &lt;code&gt;showModal()&lt;/code&gt; for closing and showing the modal&#xA;respectively.&lt;/li&gt;&#xA;&lt;li&gt;a conditional &lt;code&gt;containsClass(body, show) ? closeModal() : false;&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;a self-executing &lt;code&gt;toogleForm()&lt;/code&gt; function.  Nesting a self-executing&#xA;function inside another one &lt;a href=&#34;https://stackoverflow.com/a/592414/3184351&#34;&gt;limits the namespace of variables&lt;/a&gt;.  Even&#xA;though there&amp;rsquo;s no new variable defined inside this function, there&amp;rsquo;s a need&#xA;to wrap it with parenthesis &lt;code&gt;()&lt;/code&gt; because &lt;code&gt;toggleForm()&lt;/code&gt; is &lt;em&gt;not&lt;/em&gt; called&#xA;elsewhere, unlike &lt;code&gt;toggleMenu()&lt;/code&gt;.  If the &lt;code&gt;if(button){...}&lt;/code&gt; statement comes&#xA;out directly, we will &lt;em&gt;not&lt;/em&gt; know that it&amp;rsquo;s doing.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;</description>
    </item>
    <item>
      <title>Staticman With Introduction Theme</title>
      <link>https://vincenttam.gitlab.io/post/2019-08-02-staticman-with-introduction-theme/</link>
      <pubDate>Fri, 02 Aug 2019 19:01:07 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-08-02-staticman-with-introduction-theme/</guid>
      <description>&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;p&gt;To port &lt;a href=&#34;https://lstu.fr/hg&#34;&gt;Huginn&lt;/a&gt;&amp;rsquo;s &lt;a href=&#34;https://staticman.net&#34;&gt;Staticman&lt;/a&gt; integration to &lt;a href=&#34;https://lstu.fr/ism0&#34;&gt;Introduction&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;difficulties&#34;&gt;Difficulties&lt;/h3&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve used some class names from &lt;a href=&#34;https://github.com/mmistakes/minimal-mistakes/&#34;&gt;Minimal Mistakes&lt;/a&gt; since the&#xA;&lt;a href=&#34;https://github.com/halogenica/beautifulhugo/blob/8f3b0c3296ebb04fdb76b95d7af23787657d8ea8/static/js/staticman.js#L11-L39&#34;&gt;modals in the original code&lt;/a&gt; clashes with &lt;a href=&#34;https://lstu.fr/ism0&#34;&gt;Introduction&lt;/a&gt;&amp;rsquo;s mobile&#xA;responsive card display for projects.  If I had know the practice of prepending&#xA;a CSS class to avoid overiding the CSS properties of other components of a web&#xA;site, I wouldn&amp;rsquo;t have mixed this Jekyll theme with my&#xA;&lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-11-17-nested-comments-in-beautiful-hugo/&#34;&gt;template for nested comments&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Due to my existing work on &lt;a href=&#34;https://github.com/victoriadrake/hugo-theme-introduction/blob/37c7cf12b8b24f1022cbd343d1781fb00d824a26/assets/sass/_staticman.sass&#34;&gt;my SASS file for Staticman + Introduction&lt;/a&gt;,&#xA;I had decided to continue working with the class names in this SASS file.&#xA;Changing the CSS class names in the JS script was easier than doing so in the&#xA;SASS file since I was more familiar with the former.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CPU Temperature Display in Conky</title>
      <link>https://vincenttam.gitlab.io/post/2019-07-31-cpu-temperature-display-in-conky/</link>
      <pubDate>Wed, 31 Jul 2019 15:04:59 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-07-31-cpu-temperature-display-in-conky/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;I&amp;rsquo;m using &lt;a href=&#34;https://github.com/brndnmtthws/conky&#34;&gt;Conky&lt;/a&gt; for monitoring the system.  After a system upgrade, the CPU&#xA;temperatures were gone.  &lt;a href=&#34;https://github.com/brndnmtthws/conky&#34;&gt;Conky&lt;/a&gt;&amp;rsquo;s standard error showed the following.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;Conky: can&#39;t open &#39;/sys/class/hwmon/hwmon0/temp3_input&#39;: No such file or&#xA;directory please check your device or remove this var from Conky...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Source of message: &lt;a href=&#34;https://bbs.archlinux.org/viewtopic.php?id=82231&#34;&gt;https://bbs.archlinux.org/viewtopic.php?id=82231&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;An easy fix would be to adjust the following lines in &lt;code&gt;.conkyrc&lt;/code&gt; according to&#xA;the number &lt;code&gt;N&lt;/code&gt; in &lt;code&gt;/sys/class/hwmon/hwmonN&lt;/code&gt; containing the file &lt;code&gt;temp3_input&lt;/code&gt;.&#xA;(You may adjust the number &lt;code&gt;3&lt;/code&gt; according to the number of CPU of your device.)&#xA;The number of CPU can be found using &lt;code&gt;grep -c ^processor /proc/cpuinfo&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Animated GIF Screenshots on Ubuntu</title>
      <link>https://vincenttam.gitlab.io/post/2019-07-31-animated-gif-screenshots-on-ubuntu/</link>
      <pubDate>Wed, 31 Jul 2019 12:56:31 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-07-31-animated-gif-screenshots-on-ubuntu/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve to take screenshots to demonstrate &lt;a href=&#34;https://github.com/brndnmtthws/conky&#34;&gt;Conky&lt;/a&gt;&amp;rsquo;s visual output.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;out.gif&#34; alt=&#34;animated GIF screenshot taken by Byzanz&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve chosen &lt;a href=&#34;https://manpages.ubuntu.com/manpages/bionic/en/man1/byzanz-record.1.html&#34;&gt;Byzanz&lt;/a&gt; after reading &lt;a href=&#34;https://askubuntu.com/a/123515/259048&#34;&gt;this answer on Ask Ubuntu&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/phw/peek&#34;&gt;Peek&lt;/a&gt; is more user-friendly, but I prefer CLI&amp;rsquo;s precision.  That&amp;rsquo;s feasible&#xA;thanks to a comment mentioning &lt;code&gt;xwininfo&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;After typing &lt;code&gt;xwininfo&lt;/code&gt;, click on the target window.  Switching to adjacent&#xA;workplace is possible.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ xwininfo&#xA;xwininfo: Please select the window about which you&#xA;          would like information by clicking the&#xA;          mouse in that window.&#xA;&#xA;xwininfo: Window id: 0x1c0000a &amp;quot;Desktop&amp;quot;&#xA;&#xA;  Absolute upper-left X:  0&#xA;  Absolute upper-left Y:  0&#xA;  Relative upper-left X:  0&#xA;  Relative upper-left Y:  0&#xA;  Width: 1920&#xA;  Height: 1080&#xA;  Depth: 32&#xA;  Visual: 0x1a7&#xA;  Visual Class: TrueColor&#xA;  Border width: 0&#xA;  Class: InputOutput&#xA;  Colormap: 0x1c00009 (not installed)&#xA;  Bit Gravity State: NorthWestGravity&#xA;  Window Gravity State: NorthWestGravity&#xA;  Backing Store State: NotUseful&#xA;  Save Under State: no&#xA;  Map State: IsViewable&#xA;  Override Redirect State: no&#xA;  Corners:  +0+0  -0+0  -0-0  +0-0&#xA;  -geometry 1920x1080+0+0&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;The &lt;code&gt;--x&lt;/code&gt; and &lt;code&gt;--y&lt;/code&gt; parameters below correspond to the &lt;em&gt;absolute&lt;/em&gt; upper-left&#xA;position of the window.&lt;/p&gt;</description>
    </item>
    <item>
      <title>More Static Nested Comments</title>
      <link>https://vincenttam.gitlab.io/post/2019-07-30-more-static-nested-comments/</link>
      <pubDate>Tue, 30 Jul 2019 21:05:35 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-07-30-more-static-nested-comments/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve made &lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-11-17-nested-comments-in-beautiful-hugo/&#34;&gt;nested comment support for Beautiful Hugo&lt;/a&gt;, which I&amp;rsquo;ve ported to&#xA;other &lt;a href=&#34;https://gohugo.io&#34;&gt;Hugo&lt;/a&gt; themes like &lt;a href=&#34;https://github.com/victoriadrake/hugo-theme-introduction/pull/119&#34;&gt;Introduction&lt;/a&gt;, &lt;a href=&#34;https://github.com/htr3n/hyde-hyde/pull/58&#34;&gt;Hyde-hyde&lt;/a&gt;, &lt;a href=&#34;https://framagit.org/staticman-gitlab-pages&#34;&gt;etc&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;problem-i&#34;&gt;Problem I&lt;/h3&gt;&#xA;&lt;p&gt;Some of those &lt;a href=&#34;https://themes.gohugo.io/&#34;&gt;Hugo themes&lt;/a&gt; that I worked with did show the HTML form, but&#xA;the CSS styles were gone on the GitLab Pages.&lt;/p&gt;&#xA;&lt;h3 id=&#34;reason-i&#34;&gt;Reason I&lt;/h3&gt;&#xA;&lt;p&gt;This is due to the lack of &lt;code&gt;resources/_gen/&lt;/code&gt; in the indexed repo for themes&#xA;making use of &lt;code&gt;assets/&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;solution-i&#34;&gt;Solution I&lt;/h3&gt;&#xA;&lt;ol start=&#34;0&#34;&gt;&#xA;&lt;li&gt;Check that you have the required prerequisites.  For example,&#xA;&lt;a href=&#34;https://github.com/victoriadrake/hugo-theme-introduction/&#34;&gt;Introduction&lt;/a&gt; requires &lt;a href=&#34;https://github.com/postcss/autoprefixer&#34;&gt;autoprefixer&lt;/a&gt; and &lt;a href=&#34;https://github.com/postcss/postcss-cli&#34;&gt;postcss-cli&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Update submodule for the theme in the directory holding the source code of&#xA;the static site.&lt;/li&gt;&#xA;&lt;li&gt;Type &lt;code&gt;hugo [server]&lt;/code&gt; so that the resources are locally generated.&lt;/li&gt;&#xA;&lt;li&gt;Push the repo.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;problem-ii&#34;&gt;Problem II&lt;/h3&gt;&#xA;&lt;p&gt;The approach in my linked blog post is too complicated.  It makes use of a mix&#xA;of JavaScript and &lt;a href=&#34;https://gohugo.io&#34;&gt;Hugo&lt;/a&gt; template.  This can be hard to comprehend and port,&#xA;since the file structure for JavaScripts isn&amp;rsquo;t the same in different themes.&#xA;It&amp;rsquo;s better to make the internal referencing for nested comment display entirely&#xA;in Hugo.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Huginn Theme With Staticman</title>
      <link>https://vincenttam.gitlab.io/post/2019-05-19-huginn-theme-with-staticman/</link>
      <pubDate>Sun, 19 May 2019 19:26:28 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-05-19-huginn-theme-with-staticman/</guid>
      <description>&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;p&gt;To provide &lt;a href=&#34;https://staticman.net/&#34;&gt;Staticman&lt;/a&gt; support to the &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt; theme &lt;a href=&#34;https://framagit.org/Bridouz/hugo-theme-huginn&#34;&gt;Huginn&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;motivation&#34;&gt;Motivation&lt;/h3&gt;&#xA;&lt;p&gt;A &lt;a href=&#34;https://framagit.org/&#34;&gt;Framagit&lt;/a&gt; user tried &lt;a href=&#34;https://framagit.org/Bridouz/bridouz.frama.io/commit/f01aca4e3267d87d15057ca596554b3a190bd45f&#34;&gt;using the public GitLab instance&lt;/a&gt; but failed.&#xA;Finally, he removed &lt;a href=&#34;https://staticman.net/&#34;&gt;Staticman&lt;/a&gt; from his site and his &lt;a href=&#34;https://framagit.org/Bridouz/hugo-theme-huginn&#34;&gt;Hugo theme&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;If I had been notified, I would have explained that that was due to the&#xA;constraint of &lt;code&gt;gitlabBaseUrl&lt;/code&gt;, which could only take &lt;em&gt;one&lt;/em&gt; GitLab instance.&lt;/p&gt;&#xA;&lt;p&gt;In response to demand for &lt;a href=&#34;https://staticman.net/&#34;&gt;Staticman&lt;/a&gt; from &lt;a href=&#34;https://framagit.org/&#34;&gt;Framagit&lt;/a&gt; users, I set up&#xA;&lt;a href=&#34;https://staticman-frama.herokuapp.com/&#34;&gt;another GitLab instance&lt;/a&gt; of Staticman API and forked some Hugo/Jekyll repo&#xA;under the project page &lt;a href=&#34;https://framagit.org/staticman-gitlab-pages&#34;&gt;Staticman et GitLab Pages&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Right PATH to Linux</title>
      <link>https://vincenttam.gitlab.io/post/2019-05-18-right-path-to-linux/</link>
      <pubDate>Sat, 18 May 2019 11:25:57 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-05-18-right-path-to-linux/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;h4 id=&#34;updated-latex-version&#34;&gt;Updated $\LaTeX$ version&lt;/h4&gt;&#xA;&lt;p&gt;From &lt;a href=&#34;https://tex.stackexchange.com/q/345935/126386&#34;&gt;this $\TeX$-SE question about tlmgr&lt;/a&gt;, we see some advantages of&#xA;installing &lt;a href=&#34;https://tug.org/texlive/&#34;&gt;$\TeX$Live&lt;/a&gt; directly from the official site:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;avoid errors due to outdated version of &lt;a href=&#34;https://tug.org/texlive/&#34;&gt;$\TeX$Live&lt;/a&gt; supplied by&#xA;the OS&amp;rsquo;s package manager&lt;/li&gt;&#xA;&lt;li&gt;easier to manage packages with &lt;code&gt;tlmgr&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;enjoy the newer version of &lt;a href=&#34;https://tug.org/texlive/&#34;&gt;$\TeX$Live&lt;/a&gt; &lt;em&gt;not&lt;/em&gt; yet available in your&#xA;current GNU/Linux version.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;The installation took about 30 minutes and 5G in the disk.  I&amp;rsquo;ve chosen a local&#xA;installation as this &lt;em&gt;didn&amp;rsquo;t&lt;/em&gt; require &lt;code&gt;sudo&lt;/code&gt; privileges.  The whole process went&#xA;smooth and the system displayed a message about setting&lt;/p&gt;</description>
    </item>
    <item>
      <title>Package Versioning for Julia Projects</title>
      <link>https://vincenttam.gitlab.io/post/2019-05-09-package-versioning-for-julia-projects/</link>
      <pubDate>Thu, 09 May 2019 13:32:11 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-05-09-package-versioning-for-julia-projects/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: Thanks to &lt;a href=&#34;https://github.com/JuliaRegistries/General/pull/647&#34;&gt;JuliaRegistries/General#647&lt;/a&gt;, the version cap&#xA;of the package &lt;a href=&#34;https://github.com/JuliaStats/Distributions.jl&#34;&gt;Distributions&lt;/a&gt; has now been removed, so that one can directly&#xA;install the package &lt;a href=&#34;https://github.com/JuliaStats/GLM.jl&#34;&gt;GLM&lt;/a&gt; along with &lt;a href=&#34;https://github.com/JuliaStats/Distributions.jl&#34;&gt;Distributions&lt;/a&gt; v0.19.2.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h1 id=&#34;background&#34;&gt;Background&lt;/h1&gt;&#xA;&lt;p&gt;I&amp;rsquo;m reading the book &lt;a href=&#34;https://people.smp.uq.edu.au/YoniNazarathy/julia-stats/StatisticsWithJulia.pdf&#34;&gt;&lt;em&gt;Statistics with Julia&lt;/em&gt;&lt;/a&gt;, which makes use of &lt;a href=&#34;https://github.com/JuliaStats/GLM.jl&#34;&gt;GLM&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h1 id=&#34;problem&#34;&gt;Problem&lt;/h1&gt;&#xA;&lt;p&gt;I encountered the following error, which I posted in the issue&#xA;&lt;a href=&#34;https://github.com/JuliaStats/GLM.jl/issues/311&#34;&gt;GLM.jl#311&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v1&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;pkg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;add&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;GLM&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;nx&#34;&gt;Resolving&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;package&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;versions&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;...&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;ERROR&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;Unsatisfiable&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;requirements&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;detected&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;package&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;GLM&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;38e38&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;edf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;nx&#34;&gt;GLM&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;38e38&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;edf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;err&#34;&gt;├─&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;possible&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;versions&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;are&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.2.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.2.5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.3.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.3.2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.4.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.4.8&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.5.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.5.6&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;.6.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.6.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.7.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.8.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.8.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.9.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.10.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.10.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.11.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.0.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;1.0.2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.1.0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;1.1.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;uninstalled&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;err&#34;&gt;├─&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;restricted&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;to&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;versions&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;by&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;an&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;explicit&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;requirement&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;leaving&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;only&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;versions&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;.2.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.2.5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.3.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.3.2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.4.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.4.8&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.5.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.5.6&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.6.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.6.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.7.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.8.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.8&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.9.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.10.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.10.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.11.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.0.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;1.0.2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.1.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;1.1.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;err&#34;&gt;├─&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;restricted&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;by&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;compatibility&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;requirements&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;DataFrames&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;a93c6f00&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;to&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;versio&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;ns&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.4.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.4.8&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.5.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.5.6&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.6.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.6.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.7.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.8.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.8.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.9.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.10.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;10.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.11.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.0.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;1.0.2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.1.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;1.1.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;uninstalled&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;leaving&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;only&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;versions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;0.4.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.4.8&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.5.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.5.6&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.6.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.6.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.7.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.8.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.8.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.9.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.10.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.10.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;mf&#34;&gt;0.11.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.0.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;1.0.2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.1.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;1.1.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;└─&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;DataFrames&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;a93c6f00&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt;   &lt;span class=&#34;err&#34;&gt;├─&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;possible&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;versions&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;are&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.1.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.2.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.2.5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.3.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.3.16&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.4.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.4.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;5.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.5.12&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.6.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.6.11&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.7.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.7.8&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.8.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.8.5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.9.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.9.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.10.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.10.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;0.11.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.11.7&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.12.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.13.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.13.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.14.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.14.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.15.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.15.2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.16.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.17&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.17.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.18.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.18.2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;uninstalled&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt;   &lt;span class=&#34;err&#34;&gt;└─&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;restricted&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;to&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;versions&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.18.2&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;by&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;an&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;explicit&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;requirement&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;leaving&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;only&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;ve&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;rsions&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.18.2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;err&#34;&gt;├─&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;restricted&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;by&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;compatibility&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;requirements&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;StatsBase&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2913&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;bbd2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;to&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;version&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.11.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.0.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;1.0.2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.1.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;1.1.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;uninstalled&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;leaving&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;only&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;versions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;11.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.0.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;1.0.2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.1.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;1.1.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;└─&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;StatsBase&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2913&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;bbd2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt;   &lt;span class=&#34;err&#34;&gt;├─&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;possible&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;versions&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;are&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.1.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.2.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.2.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.2.3&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.2.10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.3.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.3.13&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;.4.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.4.4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.5.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.5.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.6.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.6.16&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.7.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.7.4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.8.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.8.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.9.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.10.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;0.11.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.11.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.12.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.13.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.13.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.14.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.14.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.15.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.16.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.16.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.17&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.18.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.19.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.19.5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.20.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.20.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.22.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.23.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.23.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.24.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.25.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;mf&#34;&gt;0.26.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.27.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.28.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.28.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.29.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.30.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;uninstalled&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;err&#34;&gt;│&lt;/span&gt;   &lt;span class=&#34;err&#34;&gt;└─&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;restricted&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;to&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;versions&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.30.0&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;by&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;an&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;explicit&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;requirement&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;leaving&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;only&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;ve&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;rsions&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.30.0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;err&#34;&gt;└─&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;restricted&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;by&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;compatibility&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;requirements&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;Distributions&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;31&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;c24e10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;to&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;ver&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;sions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;uninstalled&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;—&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;no&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;versions&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;left&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;err&#34;&gt;└─&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;Distributions&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;31&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;c24e10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     &lt;span class=&#34;err&#34;&gt;├─&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;possible&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;versions&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;are&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.1.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.1.4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.2.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.2.13&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.3.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.6.4&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.6.7&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;7.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.7.6&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.8.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.8.10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.9.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.10.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.10.2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.11.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.11.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.12.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.12.5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;3.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.14.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.14.2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.15.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.16.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.16.4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.17.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.18.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.19.1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.19.2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;uni&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;nstalled&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     &lt;span class=&#34;err&#34;&gt;└─&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;restricted&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;to&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;versions&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.19.2&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;by&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;an&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;explicit&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;requirement&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;leaving&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;only&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;ve&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;rsions&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.19.2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;discussion&#34;&gt;Discussion&lt;/h1&gt;&#xA;&lt;p&gt;Although the packages &lt;a href=&#34;https://github.com/JuliaStats/StatsBase.jl&#34;&gt;StatsBase&lt;/a&gt; and &lt;a href=&#34;https://github.com/JuliaData/DataFrames.jl&#34;&gt;DataFrames&lt;/a&gt; appear in the above error&#xA;message, the cause of this problem was actually the package &lt;a href=&#34;https://github.com/JuliaStats/Distributions.jl&#34;&gt;Distributions&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Insensitive Laptop Touchpad</title>
      <link>https://vincenttam.gitlab.io/post/2019-05-06-insensitive-laptop-touchpad/</link>
      <pubDate>Mon, 06 May 2019 15:58:43 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-05-06-insensitive-laptop-touchpad/</guid>
      <description>&lt;h1 id=&#34;problem&#34;&gt;Problem&lt;/h1&gt;&#xA;&lt;p&gt;The touchpad on my new Ubuntu 18.04 LTS laptop was &lt;em&gt;frozen&lt;/em&gt;.  Toogling 🖱 with&#xA;&lt;code&gt;&amp;lt;Fn&amp;gt;-&amp;lt;F4&amp;gt;&lt;/code&gt; &lt;em&gt;didn&amp;rsquo;t&lt;/em&gt; worked.&lt;/p&gt;&#xA;&lt;h1 id=&#34;attempt&#34;&gt;Attempt&lt;/h1&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Logout: &lt;em&gt;didn&amp;rsquo;t&lt;/em&gt; work at all&lt;/li&gt;&#xA;&lt;li&gt;Reboot: &lt;em&gt;worked&lt;/em&gt; most of the time&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h1 id=&#34;partial-solution&#34;&gt;Partial solution&lt;/h1&gt;&#xA;&#xA;&#xA;    &#xA;    &lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/GaZefnkB04o?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&#xA;      &gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;p&gt;After changing the &lt;strong&gt;Mouse Click Emulation&lt;/strong&gt; in &lt;strong&gt;Keyboard &amp;amp; Mouse&lt;/strong&gt; in&#xA;&lt;a href=&#34;https://wiki.ubuntu.com/UbuntuTweak&#34;&gt;Ubuntu Tweak&lt;/a&gt; from the default &amp;ldquo;Fingers&amp;rdquo; (2 fingers for right click; 3&#xA;fingers for middle click) to &amp;ldquo;Area&amp;rdquo; (Right/middle click determined by clicked&#xA;area), one might have to wait for next reboot.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Juno Installation 2019</title>
      <link>https://vincenttam.gitlab.io/post/2019-05-06-juno-installation-2019/</link>
      <pubDate>Mon, 06 May 2019 13:47:19 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-05-06-juno-installation-2019/</guid>
      <description>&lt;h1 id=&#34;goal&#34;&gt;Goal&lt;/h1&gt;&#xA;&lt;p&gt;To install &lt;a href=&#34;https://junolab.org/&#34;&gt;Juno&lt;/a&gt; for convenient development in &lt;a href=&#34;https://julialang.org/&#34;&gt;Julia&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h1 id=&#34;problem&#34;&gt;Problem&lt;/h1&gt;&#xA;&lt;p&gt;After &lt;a href=&#34;https://junolab.org/&#34;&gt;Juno&lt;/a&gt; installation, I received the following error.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;noju.png&#34; alt=&#34;Juno error&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;analysis&#34;&gt;Analysis&lt;/h1&gt;&#xA;&lt;p&gt;From the error message, the system had tried to find an executable file &lt;code&gt;julia&lt;/code&gt;,&#xA;which would then be executed by the shell &lt;code&gt;/bin/sh&lt;/code&gt;.  Nonetheless, it&amp;rsquo;s &lt;em&gt;absent&lt;/em&gt;&#xA;from the system&amp;rsquo;s environment &lt;code&gt;$PATH&lt;/code&gt;, so &lt;a href=&#34;https://junolab.org/&#34;&gt;Juno&lt;/a&gt; &lt;em&gt;couldn&amp;rsquo;t&lt;/em&gt; find it.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve only changed my &lt;code&gt;$PATH&lt;/code&gt; in ZSHRC, which is user-specific.&lt;/p&gt;&#xA;&lt;h1 id=&#34;solution&#34;&gt;Solution&lt;/h1&gt;&#xA;&lt;p&gt;This Stack Overflow &lt;a href=&#34;https://stackoverflow.com/q/14637979/3184351&#34;&gt;question about &lt;code&gt;$PATH&lt;/code&gt; setting on *nix&lt;/a&gt; has&#xA;provided various solution.  As I was in a hurry to get &lt;a href=&#34;https://julialang.org/&#34;&gt;Julia&lt;/a&gt; run on &lt;a href=&#34;https://junolab.org/&#34;&gt;Juno&lt;/a&gt;,&#xA;I&amp;rsquo;ve taken the advice from the best answer.  I prefer creating a &lt;em&gt;separate&lt;/em&gt;&#xA;shortcut under &lt;code&gt;/usr/bin&lt;/code&gt;, rather than editing system-wide config files.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Conditional Batch File Editing</title>
      <link>https://vincenttam.gitlab.io/post/2019-05-01-conditional-batch-file-editing/</link>
      <pubDate>Wed, 01 May 2019 23:56:44 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-05-01-conditional-batch-file-editing/</guid>
      <description>&lt;h1 id=&#34;problem&#34;&gt;Problem&lt;/h1&gt;&#xA;&lt;p&gt;During the adoption of &lt;a href=&#34;https://gohugo.io/content-management/formats/#use-mmark&#34;&gt;Mmark&lt;/a&gt; for math posts on this blog, I had to&#xA;&lt;a href=&#34;https://vincenttam.gitlab.io/post/2019-04-29-improved-integration-of-hugo-and-katex/#general-method&#34;&gt;insert &lt;code&gt;markup: mmark&lt;/code&gt;&lt;/a&gt; at the last line of front matter of the source file&#xA;of &lt;em&gt;each&lt;/em&gt; math post.&lt;/p&gt;&#xA;&lt;h1 id=&#34;seek-help&#34;&gt;Seek help&lt;/h1&gt;&#xA;&lt;p&gt;I separated this into two SO questions&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://stackoverflow.com/q/55886116/3184351&#34;&gt;Sed conditional match and execute command with offset&lt;/a&gt;, and&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://stackoverflow.com/q/55887589/3184351&#34;&gt;A question about AWK multiple line recognition&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h1 id=&#34;solution&#34;&gt;Solution&lt;/h1&gt;&#xA;&lt;p&gt;From #1., I learnt the use of variables in AWK scripts.  From #2, some users&#xA;explained how these variables can be used for multi-line regex search.&lt;/p&gt;</description>
    </item>
    <item>
      <title>My Intended Trigo Answer</title>
      <link>https://vincenttam.gitlab.io/post/2019-05-01-my-intended-trigo-answer/</link>
      <pubDate>Wed, 01 May 2019 22:24:45 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-05-01-my-intended-trigo-answer/</guid>
      <description>&lt;p&gt;The Math.SE question &lt;em&gt;&lt;a href=&#34;https://math.stackexchange.com/q/3210133/290189&#34;&gt;$2\cos(2x) - 2\sin(x) = 0$&lt;/a&gt;&lt;/em&gt; has attracted several&#xA;answers from high-rep users.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;I am expanding @rhombic&amp;rsquo;s comment into an answer.&lt;/p&gt;&#xA;&lt;div&gt;&#xA;$$&#xA;\begin{aligned}&#xA;2\cos(2x)-2\sin(x)&amp;=0 \\&#xA;2 - 4\sin^2(x)-2\sin(x)&amp;=0 \\&#xA;2\sin^2(x)+\sin(x) - 1&amp;=0 \\&#xA;(2 \sin(x) - 1)(\sin(x) +1) &amp;= 0 \\&#xA;\sin(x) = \frac12 \text{ or } \sin(x) &amp;= -1 \\&#xA;x = \frac{\pi}{6}, \frac{5\pi}{6} \text{ (rejected) or } &amp; \frac{3\pi}{2}&#xA;\text{ (rejected)}&#xA;\end{aligned}&#xA;$$&#xA;&lt;/div&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Improved Integration of Hugo and $\KaTeX$</title>
      <link>https://vincenttam.gitlab.io/post/2019-04-29-improved-integration-of-hugo-and-katex/</link>
      <pubDate>Mon, 29 Apr 2019 09:48:32 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-04-29-improved-integration-of-hugo-and-katex/</guid>
      <description>&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;There&amp;rsquo;s &lt;em&gt;no&lt;/em&gt; &lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-09-27-custom-katex-macros/&#34;&gt;custom $\KaTeX$ macro&lt;/a&gt; in local preview since I&amp;rsquo;ve merged some&#xA;recent commits from the upstream of this blog&amp;rsquo;s theme, in particular,&#xA;&lt;a href=&#34;//github.com/halogenica/beautifulhugo/&#34;&gt;Beautiful Hugo&lt;/a&gt;&amp;rsquo;s pull requests &lt;a href=&#34;//github.com/halogenica/beautifulhugo/pull/246&#34;&gt;#246&lt;/a&gt; and &lt;a href=&#34;//github.com/halogenica/beautifulhugo/pull/255&#34;&gt;#255&lt;/a&gt;, which allowed&#xA;&lt;em&gt;self-hosting the theme&amp;rsquo;s static JS, CSS and font files&lt;/em&gt;.  This self-hosted&#xA;option is particularly useful in case of &lt;em&gt;slow response from &lt;a href=&#34;//www.cloudflare.com/&#34;&gt;Cloudflare&lt;/a&gt;&amp;rsquo;s&#xA;CDN&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;preview.png&#34; alt=&#34;hugo local preview no KaTeX macro&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;public1.png&#34; alt=&#34;public Hugo blog KaTeX auto-renderer error&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Even they &lt;em&gt;do&lt;/em&gt; appear on the public GitLab site, the final rendered Markdown +&#xA;$\TeX$ code would be succumb to syntax errors due to their absence in the&#xA;preview process.&lt;/p&gt;</description>
    </item>
    <item>
      <title>JavaScript Copy Button</title>
      <link>https://vincenttam.gitlab.io/post/2019-04-26-javascript-copy-button/</link>
      <pubDate>Fri, 26 Apr 2019 23:01:53 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-04-26-javascript-copy-button/</guid>
      <description>&lt;h1 id=&#34;goal&#34;&gt;Goal&lt;/h1&gt;&#xA;&lt;p&gt;To create a copy button for &lt;a href=&#34;https://vincenttam.gitlab.io/page/math-se-comment-templates/&#34;&gt;my Math.SE comment template&lt;/a&gt; in order to save&#xA;the trouble of copying and pasting.&lt;/p&gt;&#xA;&lt;h1 id=&#34;my-first-attempt&#34;&gt;My first attempt&lt;/h1&gt;&#xA;&lt;p&gt;I put the boilerplate inside a Markdown codeblock to prevent them from getting&#xA;interpreted by &lt;a href=&#34;//gohugo.io/&#34;&gt;Hugo&lt;/a&gt;&amp;rsquo;s Markdown parser.  Under each codeblock, I placed the&#xA;copy button.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Comment boilerplate goes here ...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;button class=&#34;copyBtn&#34;&gt;📝&lt;/button&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Another comment boilerplate goes here ...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;button class=&#34;copyBtn&#34;&gt;📝&lt;/button&gt;&lt;/p&gt;&#xA;&lt;p&gt;&amp;hellip;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://vincenttam.gitlab.io/page/math-se-comment-templates/&#34;&gt;My page&lt;/a&gt;&amp;rsquo;s original layout&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;document&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;ready&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;function&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;.copyBtn&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;click&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;function&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;copy&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;prev&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;().&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;children&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;j&lt;/span&gt;  &lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;function&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;copy&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;selector&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kd&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;screenTop&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;document&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;scrollTop&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kd&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;$temp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;lt;div&amp;gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;body&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;$temp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;$temp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;attr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;contenteditable&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;html&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;selector&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;html&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;select&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;on&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;focus&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;function&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;document&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;execCommand&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;selectAll&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;null&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;focus&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nb&#34;&gt;document&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;execCommand&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;copy&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;$temp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;remove&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nx&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;html, body&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;scrollTop&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;screenTop&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;p&gt;&lt;code&gt;static/js/copyBtn.js&lt;/code&gt; at Git tag &lt;code&gt;copyBtn0&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>My Dual Answer</title>
      <link>https://vincenttam.gitlab.io/post/2019-04-26-my-dual-answer/</link>
      <pubDate>Fri, 26 Apr 2019 18:01:13 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-04-26-my-dual-answer/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: The question has been &lt;em&gt;reopened&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;I intended to answer &lt;a href=&#34;https://math.stackexchange.com/q/3203415/290189&#34;&gt;김종현&amp;rsquo;s problem on Math.SE&lt;/a&gt;.  However, the programs in&#xA;the question body &lt;em&gt;aren&amp;rsquo;t&lt;/em&gt; typeset in &lt;a href=&#34;https://www.mathjax.org/&#34;&gt;MathJax&lt;/a&gt;.  As a result, I downvoted&#xA;and closed this question because found it &lt;em&gt;unclear&lt;/em&gt;.  From the proposed dual,&#xA;it seems that I &lt;em&gt;shouldn&amp;rsquo;t&lt;/em&gt; interpret the primal as a linear program.  Anyways,&#xA;&lt;em&gt;without&lt;/em&gt; further clarifications from OP, I &lt;em&gt;found&lt;/em&gt; no reason to look at this&#xA;further.  Here&amp;rsquo;s my intended answer:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Finite Population Sampling without Replacement</title>
      <link>https://vincenttam.gitlab.io/post/2019-04-26-finite-population-sampling-without-replacement/</link>
      <pubDate>Fri, 26 Apr 2019 09:46:29 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-04-26-finite-population-sampling-without-replacement/</guid>
      <description>&lt;h1 id=&#34;first-moment&#34;&gt;First moment&lt;/h1&gt;&#xA;&lt;p&gt;Population: $ \Omega = \{ x_1, \dots, x_N \} $&lt;br&gt;&#xA;Collection of $n$-samples:&#xA;$\mathcal{S} = \{ s \in \Omega^n \mid \forall i,j \in s, i \ne j \} $&lt;br&gt;&#xA;Collection of $n$-samples containing $x$:&#xA;$ \mathcal{S}_x = \{ s \in \mathcal{S} \mid x \in s \} $&lt;br&gt;&#xA;Observe that $ |\mathcal{S}_x| = \binom{N-1}{n-1} $.&lt;br&gt;&#xA;Let population mean be zero.  $\mu = 0$, i.e. $ \sum_{i = 1}^N x_i = 0 $&lt;br&gt;&#xA;Fix an order for $\mathcal{S}$:&#xA;$ \mathcal{S} = \{ s_1, s_2, \dots, s_{|\mathcal{S}|} \} $.&lt;br&gt;&#xA;$j$-th $n$-sample mean $ m_j = \frac1n \sum_{x \in \mathcal{S}_j} x $&lt;br&gt;&#xA;Remark: I &lt;em&gt;don&amp;rsquo;t&lt;/em&gt; use $ \sum s_j $ as in $ \cup \mathcal{T} $ in topology to&#xA;avoid misreading the $n$-sample $ s_j $ as an element.&lt;br&gt;&#xA;mean of $n$-sample mean&#xA;$ m = \frac{1}{|\mathcal{S}|} \sum_{s_j \in \mathcal{S}} m_j $&lt;/p&gt;</description>
    </item>
    <item>
      <title>Replacing Deprecated Hugo Syntax in Blog Theme</title>
      <link>https://vincenttam.gitlab.io/post/2019-04-25-replacing-deprecated-hugo-syntax-in-blog-theme/</link>
      <pubDate>Thu, 25 Apr 2019 12:45:08 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-04-25-replacing-deprecated-hugo-syntax-in-blog-theme/</guid>
      <description>&lt;h1 id=&#34;problem&#34;&gt;Problem&lt;/h1&gt;&#xA;&lt;p&gt;Since the recent Hugo upgrade to v0.55.3, the following messages popped up after&#xA;each local site regeneration with &lt;code&gt;hugo server&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;WARN 2019/04/24 18:07:00 Page&amp;#39;s .URL is deprecated and will be removed in a futu&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;re release. Use .Permalink or .RelPermalink. If what you want is the front matte&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;r URL value, use .Params.url.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;WARN 2019/04/24 18:07:00 Page&amp;#39;s .Hugo is deprecated and will be removed in a fut&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ure release. Use the global hugo function.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;WARN 2019/04/24 18:07:00 Page&amp;#39;s .RSSLink is deprecated and will be removed in a &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;future release. Use the Output Format&amp;#39;s link, e.g. something like: &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    {{ with .OutputFormats.Get &amp;#34;RSS&amp;#34; }}{{ .RelPermalink }}{{ end }}.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Total in 136 ms&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;https://gitlab.com/VincentTam/vincenttam.gitlab.io/-/jobs/201796830&#34;&gt;GitLab&amp;rsquo;s online runner&lt;/a&gt; also gave the &lt;em&gt;same&lt;/em&gt; type of warnings.  This was&#xA;reported in &lt;a href=&#34;https://github.com/halogenica/beautifulhugo/issues/261&#34;&gt;Beautiful Hugo issue #261&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Julia Rcall Installation</title>
      <link>https://vincenttam.gitlab.io/post/2019-04-24-julia-rcall-installation/</link>
      <pubDate>Wed, 24 Apr 2019 15:14:52 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-04-24-julia-rcall-installation/</guid>
      <description>&lt;h1 id=&#34;problem&#34;&gt;Problem&lt;/h1&gt;&#xA;&lt;p&gt;During the installation of &lt;a href=&#34;https://github.com/JuliaInterop/RCall.jl&#34;&gt;RCall.jl&lt;/a&gt;, the package &lt;em&gt;wasn&amp;rsquo;t&lt;/em&gt; successfully&#xA;built due to a missing variable &lt;code&gt;$R_HOME&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ julia -q&#xA;julia&amp;gt; Pkg.add(&amp;quot;RCall&amp;quot;)&#xA; Resolving package versions...&#xA; Installed WinReg ─ v0.3.1&#xA; Installed RCall ── v0.13.2&#xA;  Updating `~/.julia/environments/v1.0/Project.toml`&#xA;  [6f49c342] + RCall v0.13.2&#xA;  Updating `~/.julia/environments/v1.0/Manifest.toml`&#xA;  [6f49c342] + RCall v0.13.2&#xA;  [1b915085] + WinReg v0.3.1&#xA;  Building RCall → `~/.julia/packages/RCall/ffM0W/deps/build.log`&#xA;┌ Error: Error building `RCall`:&#xA;│ ERROR: LoadError: R_HOME is not a directory.&#xA;│ Stacktrace:&#xA;│  [1] error(::String) at ./error.jl:33&#xA;│  [2] top-level scope at logging.jl:322&#xA;│  [3] top-level scope at /home/vin100/.julia/packages/RCall/ffM0W/deps/build.jl&#xA;:19&#xA;│  [4] include at ./boot.jl:317 [inlined]&#xA;│  [5] include_relative(::Module, ::String) at ./loading.jl:1041&#xA;│  [6] include(::Module, ::String) at ./sysimg.jl:29&#xA;│  [7] include(::String) at ./client.jl:388&#xA;│  [8] top-level scope at none:0&#xA;│ in expression starting at /home/vin100/.julia/packages/RCall/ffM0W/deps/build.&#xA;jl:10&#xA;└ @ Pkg.Operations /buildworkjr/worker/package_linux64/build/usr/share/julia/std&#xA;lib/v1.0/pkg/src/operations.jl:1069&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h1 id=&#34;discussion&#34;&gt;Discussion&lt;/h1&gt;&#xA;&lt;p&gt;It took me a few minutes to realise that the cause of this error is the&#xA;&lt;em&gt;absence&lt;/em&gt; of &lt;a href=&#34;https://www.r-project.org/&#34;&gt;R&lt;/a&gt;.  I referred to&#xA;&lt;a href=&#34;https://cran.r-project.org/bin/linux/ubuntu/&#34;&gt;CRAN&amp;rsquo;s installation instructions for Ubuntu&lt;/a&gt; and added&lt;/p&gt;</description>
    </item>
    <item>
      <title>Xubuntu Screen Enlargement</title>
      <link>https://vincenttam.gitlab.io/post/2019-04-21-xubuntu-screen-enlargement/</link>
      <pubDate>Sun, 21 Apr 2019 02:49:09 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-04-21-xubuntu-screen-enlargement/</guid>
      <description>&lt;p&gt;Tonight, the screen of Xubuntu suddenly enlarged and blurred.  Typing &amp;ldquo;xubuntu&#xA;screen display enlarged&amp;rdquo; on Google, I&amp;rsquo;ve learnt that the &lt;code&gt;&amp;lt;Alt&amp;gt;&lt;/code&gt; key and the&#xA;mouse scroll wheel can enlarge/minify screen display from &lt;a href=&#34;https://ubuntuforums.org/showthread.php?t=2349888&#34;&gt;Ubuntu Forums&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cython Can&#39;t Replace Julia</title>
      <link>https://vincenttam.gitlab.io/post/2019-04-17-cython-cant-replace-julia/</link>
      <pubDate>Wed, 17 Apr 2019 16:57:32 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-04-17-cython-cant-replace-julia/</guid>
      <description>&lt;p&gt;This is a linklog to&#xA;&lt;a href=&#34;https://www.stochasticlifestyle.com/why-numba-and-cython-are-not-substitutes-for-julia/&#34;&gt;Christopher Rackauckas&amp;rsquo;s article about Julia, Cython &amp;amp; Numba&lt;/a&gt;.  Unluckily, I&#xA;&lt;em&gt;don&amp;rsquo;t&lt;/em&gt; have time to read this now.  Hope I can return to this later.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cantonese vs Mandarin for Reading Tang Poems</title>
      <link>https://vincenttam.gitlab.io/post/2019-04-17-cantonese-vs-mandarin-for-reading-tang-poems/</link>
      <pubDate>Wed, 17 Apr 2019 15:12:31 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-04-17-cantonese-vs-mandarin-for-reading-tang-poems/</guid>
      <description>&lt;p&gt;This is a linkblog to a &lt;a href=&#34;https://www.discuss.com.hk/viewthread.php?tid=11881519&amp;amp;page=1#pid246420659&#34;&gt;post on Discuss HK&lt;/a&gt; which claims how Mandarin (普通話)&#xA;messes up the flat and oblique tones (平仄) of the regulate verse (近體詩) below.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;《山行》　杜牧&lt;br&gt;&#xA;遠上寒山石徑斜，白雲生處有人家。&lt;br&gt;&#xA;停車坐愛楓林晚，霜葉紅於二月花。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Cantonese (粵語)&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Mandarin (普通話)&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;仄仄平平仄仄平 &lt;br&gt; 仄平平仄仄平平 &lt;br&gt; 平平仄仄平平仄 &lt;br&gt; 仄仄平平仄仄平&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;仄仄平平&lt;em&gt;平&lt;/em&gt;仄平 &lt;br&gt; &lt;em&gt;平&lt;/em&gt;平平仄仄平平 &lt;br&gt; 平平仄仄平平仄 &lt;br&gt; 仄仄平平仄仄平&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;However, Kimery has checked the Mandarin pinyin (拼音) and (s)he &lt;em&gt;doesn&amp;rsquo;t&lt;/em&gt; found&#xA;such problem except for some characters with &lt;em&gt;entering tone (入聲)&lt;/em&gt;.  Luckily,&#xA;such characters are located at the &lt;em&gt;odd numbered position of a verse&lt;/em&gt;.&#xA;Eventually, (after considering other factors,) that &lt;em&gt;won&amp;rsquo;t&lt;/em&gt; harm the variation&#xA;of tones &lt;em&gt;in principle&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quels schémas à tester ?</title>
      <link>https://vincenttam.gitlab.io/post/2019-04-11-quels-schemas-a-tester/</link>
      <pubDate>Thu, 11 Apr 2019 11:49:01 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-04-11-quels-schemas-a-tester/</guid>
      <description>&lt;p&gt;Pour simuler les trajectoires d&amp;rsquo;une équation différentielle, le schéma le plus&#xA;facile est l&amp;rsquo;un découvert par Euler.&lt;/p&gt;&#xA;&lt;p&gt;Cependant, en espérant mettre ce que j&amp;rsquo;ai vu au cours de ma licence en pratique,&#xA;j&amp;rsquo;ai cherché un peu sur des méthodes numériques pour les EDS sur Google, et je&#xA;suis tombé sur &lt;a href=&#34;https://www.math.fsu.edu/~ewald/006-WeakVersionsOfStochastiAdamsBashforthAndSemiImplicitLeapfrogSchemes.pdf&#34;&gt;un article écrit par Brian D. Ewald&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Les différences entre les schémas « forts » et « faibles » seraient-ils&#xA;pertinents pour mon stage ?  On va voir.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Borel Cantelli Exercise 2019</title>
      <link>https://vincenttam.gitlab.io/post/2019-02-04-borel-cantelli-exercise-2019/</link>
      <pubDate>Mon, 04 Feb 2019 16:24:40 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-02-04-borel-cantelli-exercise-2019/</guid>
      <description>&lt;p&gt;I intend to post this for &lt;a href=&#34;https://math.stackexchange.com/q/3099953/290189&#34;&gt;a Borel-Cantelli lemma exercise&lt;/a&gt; on&#xA;&lt;a href=&#34;https://math.stackexchange.com&#34;&gt;Math.SE&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;The target event is ${\exists i_0 \in \Bbb{N} : \forall i \ge i_0, X_i =&#xA;1}$, whose complement is&lt;/p&gt;&#xA;&lt;p&gt;$$&#xA;{\forall i_0 \in \Bbb{N} : \exists i \ge i_0, X_i &amp;gt; = 0}&#xA;= \limsup_i {X_i = 0}.&#xA;$$&lt;/p&gt;&#xA;&lt;p&gt;To apply Borel-Cantelli, one has to determine whether $\sum_i P(X_i =&#xA;0)&amp;lt;+\infty$.&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Mise à jour du template de lettre</title>
      <link>https://vincenttam.gitlab.io/post/2019-01-16-mise-a-jour-du-template-de-lettre/</link>
      <pubDate>Wed, 16 Jan 2019 15:04:54 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-01-16-mise-a-jour-du-template-de-lettre/</guid>
      <description>&lt;h3 id=&#34;contexte&#34;&gt;Contexte&lt;/h3&gt;&#xA;&lt;p&gt;J&amp;rsquo;ai publié &lt;a href=&#34;https://vincenttam.github.io/blog/2016/04/16/latex-french-letter-template/&#34;&gt;mon template de lettre&lt;/a&gt; en Xe$\LaTeX$ sur &lt;a href=&#34;https://git.io/vtblog&#34;&gt;mon ancien blog&lt;/a&gt;&#xA;(hébergé sur GitHub Pages) il y a trois ans.&lt;/p&gt;&#xA;&lt;h3 id=&#34;problème-et-solution&#34;&gt;Problème et solution&lt;/h3&gt;&#xA;&lt;p&gt;Après le &lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-08-18-ubuntu-18-04-installation-on-fujitsu-ah557/&#34;&gt;changement de l&amp;rsquo;ordi portable&lt;/a&gt;, il me faut l&amp;rsquo;installation du&#xA;pacquetage &amp;ldquo;texlive-lang-french&amp;rdquo; sur la nouvelle version d&amp;rsquo;Ubuntu.  Sinon, une&#xA;erreur du pacquetage Babel se surviendra.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;! Package babel Error: Unknown option `frenchb&#39;. Either you misspelled it&#xA;(babel)                or the language definition file frenchb.ldf was not foun&#xA;d.&#xA;&#xA;See the babel package documentation for explanation.&#xA;Type  H &amp;lt;return&amp;gt;  for immediate help.&#xA;&#xA;&#xA;l.445 \ProcessOptions*&#xA;&#xA;?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;A ce stade, Xe$\LaTeX$ parviendra à compiler le fichier $\TeX$ avec une remarque&#xA;à propos de l&amp;rsquo;obsolescence de l&amp;rsquo;option &lt;code&gt;frenchb&lt;/code&gt; pour le pacquetage Babel.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Staticman Failure on Tsalikis&#39; Site</title>
      <link>https://vincenttam.gitlab.io/post/2019-01-01-staticman-failure-on-tsalikis-site/</link>
      <pubDate>Tue, 01 Jan 2019 01:21:57 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2019-01-01-staticman-failure-on-tsalikis-site/</guid>
      <description>&lt;p&gt;After reading &lt;a href=&#34;https://www.droidship.com/posts/staticman-migration/&#34;&gt;&lt;em&gt;Hugo Comments with Staticman&lt;/em&gt;&lt;/a&gt; on Kostas Tsalikis&amp;rsquo; web site,&#xA;I tried to leave the following comment.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;As far as I know, Staticman can be used only with GitHub, since it works as&#xA;a GitHub bot. Obviously, not all static sites are saved in GitHub, and this may&#xA;be a showstopper for someone using another service.  Thanks to&#xA;eduardoboucas/staticman#219, &lt;strong&gt;Staticman now supports GitLab.&lt;/strong&gt;  You may view my&#xA;demo Hugo site on &lt;em&gt;Framagit&lt;/em&gt; at&#xA;&lt;a href=&#34;https://staticman-gitlab-pages.frama.io/bhdemo/posts/my-second-post/&#34;&gt;https://staticman-gitlab-pages.frama.io/bhdemo/posts/my-second-post/&lt;/a&gt;&#xA;&lt;a href=&#34;https://framagit.org/staticman-gitlab-pages/bhdemo&#34;&gt;Source&lt;/a&gt;) as a working&#xA;example.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Staticman Repo Setup Errors</title>
      <link>https://vincenttam.gitlab.io/post/2018-12-25-staticman-repo-setup-errors/</link>
      <pubDate>Tue, 25 Dec 2018 17:07:02 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-12-25-staticman-repo-setup-errors/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;Idem to &lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-12-24-staticman-on-framagit/&#34;&gt;&lt;em&gt;Staticman on Framagit&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Besides, the build time for &lt;a href=&#34;https://vincenttam.gitlab.io/bhdemo/&#34;&gt;my Staticman + Beautiful Hugo demo&lt;/a&gt; on&#xA;&lt;a href=&#34;https://framagit.org/staticman-gitlab-pages/bhdemo/-/jobs/&#34;&gt;Framagit&lt;/a&gt; is &lt;em&gt;half&lt;/em&gt; of that for the &lt;em&gt;same project&lt;/em&gt; on&#xA;&lt;a href=&#34;https://gitlab.com/VincentTam/bhdemo/-/jobs&#34;&gt;GitLab.com&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;After the setup, it&amp;rsquo;s possible that the theme shows &amp;ldquo;Sorry!  There&amp;rsquo;s an error&#xA;during submission.&amp;rdquo;  To get an insight into this error, one has to open&#xA;&lt;strong&gt;Web Developer Tools&lt;/strong&gt; → &lt;strong&gt;Network&lt;/strong&gt; and select the row corresponding to the&#xA;POST request sent to the Staticman API.  A side pane will pop out on the right.&#xA;Select &lt;strong&gt;Response&lt;/strong&gt; to view the API&amp;rsquo;s response in JSON.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Staticman&#39;s Encryption Mechanism</title>
      <link>https://vincenttam.gitlab.io/post/2018-12-25-staticman-encryption-mechanism/</link>
      <pubDate>Tue, 25 Dec 2018 14:45:52 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-12-25-staticman-encryption-mechanism/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://staticman.net/docs/configuration&#34;&gt;Staticman&amp;rsquo;s documentation&lt;/a&gt; gives a link to the&#xA;&lt;a href=&#34;https://github.com/eduardoboucas/staticman/blob/master/staticman_key.pub&#34;&gt;public key for the public Staticman instance&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve &lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-09-16-staticman-powered-gitlab-pages/2/&#34;&gt;set up my own Staticman instance&lt;/a&gt; for testing&#xA;&lt;a href=&#34;https://github.com/eduardoboucas/staticman/pull/219&#34;&gt;Staticman&amp;rsquo;s native GitLab support&lt;/a&gt;.  It&amp;rsquo;s a coincidence that the public&#xA;Staticman instance has been hitting it&amp;rsquo;s API limit, as reported in&#xA;&lt;a href=&#34;https://github.com/eduardoboucas/staticman/issues/227&#34;&gt;Staticman issue 227&lt;/a&gt;.  To help others, I&amp;rsquo;ve published the URL of&#xA;&lt;a href=&#34;https://staticman3.herokuapp.com/&#34;&gt;my own Staticman instance&lt;/a&gt;, which is associated with the&#xA;&lt;a href=&#34;https://github.com/staticmanlab&#34;&gt;GitHub&lt;/a&gt;/&lt;a href=&#34;https://gitlab.com/staticmanlab&#34;&gt;GitLab user &lt;strong&gt;staticmanlab&lt;/strong&gt;&lt;/a&gt;.  As Node.js&amp;rsquo;s RSA&#xA;library has been used in Staticman, I have the &lt;em&gt;responsibility&lt;/em&gt; to &lt;em&gt;publish the&#xA;public RSA key for my Staticman instance&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Staticman on Framagit</title>
      <link>https://vincenttam.gitlab.io/post/2018-12-24-staticman-on-framagit/</link>
      <pubDate>Mon, 24 Dec 2018 01:59:57 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-12-24-staticman-on-framagit/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s a pity that some &lt;a href=&#34;https://gitlab.com&#34;&gt;GitLab&lt;/a&gt; users have removed &lt;a href=&#34;https://staticman.net&#34;&gt;Staticman&lt;/a&gt; from their repo. I&#xA;saw demand for Staticman from &lt;a href=&#34;https://framagit.org&#34;&gt;Framagit&lt;/a&gt; users.  Therefore, after two days of&#xA;testing, another API instance for Framagit has been created at&#xA;&lt;a href=&#34;https://staticman-frama.herokuapp.com&#34;&gt;https://staticman-frama.herokuapp.com&lt;/a&gt;.  (Edit: typo edited, please see my&#xA;comment below.)&lt;/p&gt;&#xA;&lt;p&gt;The default GitLab base URL is set to &amp;ldquo;&lt;a href=&#34;https://gitlab.com&#34;&gt;https://gitlab.com&lt;/a&gt;&amp;rdquo;.  To provide&#xA;Staticman support for a self-hosted GitLab service, another Staticman API server&#xA;has to be set up.&lt;/p&gt;&#xA;&lt;p&gt;I tried applying for &lt;a href=&#34;https://manage.openshift.com/&#34;&gt;OpenShift&lt;/a&gt;, but it&amp;rsquo;s been reported on Reddit that it takes&#xA;about 10&amp;ndash;20 days to get started.  Amazon requires verification by credit card.&#xA;I &lt;em&gt;couldn&amp;rsquo;t&lt;/em&gt; deploy Staticman using &lt;a href=&#34;https://zeit.co/&#34;&gt;Zeit Now&lt;/a&gt;&amp;rsquo;s Node.js server builder.&#xA;Finally, I turned back to &lt;a href=&#34;https://www.heroku.com/&#34;&gt;Heroku&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Detect Missing EOF</title>
      <link>https://vincenttam.gitlab.io/post/2018-12-23-detect-missing-eof/</link>
      <pubDate>Sun, 23 Dec 2018 12:10:06 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-12-23-detect-missing-eof/</guid>
      <description>&lt;p&gt;While editing files on GitHub/Gitlab, missing an empty line at the bottom of a&#xA;file in the buffer will result in no newline at the end of file.  In the case of&#xA;regular text files, this &lt;em&gt;isn&amp;rsquo;t&lt;/em&gt; consistent with the POSIX standards.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; file in &lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt;git ls-files&lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;do&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  grep -Iq . &lt;span class=&#34;nv&#34;&gt;$file&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; ! newline_at_eof &lt;span class=&#34;nv&#34;&gt;$file&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;then&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$file&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;fi&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;done&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Fred has provided &lt;a href=&#34;https://stackoverflow.com/a/34944104/3184351&#34;&gt;a shell script for detecting EOF&lt;/a&gt; on Stack Overflow.&#xA;I&amp;rsquo;ve replaced &lt;code&gt;bash&lt;/code&gt; with &lt;code&gt;sh&lt;/code&gt; because I&amp;rsquo;m using Zsh.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Find Files for Rename</title>
      <link>https://vincenttam.gitlab.io/post/2018-12-23-find-files-for-rename/</link>
      <pubDate>Sun, 23 Dec 2018 11:57:58 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-12-23-find-files-for-rename/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;Three years ago, I wrote &lt;a href=&#34;https://vincenttam.github.io/blog/2015/08/22/used-more-bash-utilities/&#34;&gt;&lt;em&gt;Used More Bash Utilities&lt;/em&gt;&lt;/a&gt; for batch renaming&#xA;files.  One of my &lt;a href=&#34;https://facebook.com&#34;&gt;Facebook&lt;/a&gt; friends has pointed out that it fails for file names containing whitespace.&lt;/p&gt;&#xA;&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;Recently, I would like to remove the extension name &lt;code&gt;.sh&lt;/code&gt; of all shell scripts&#xA;in &lt;code&gt;~/bin&lt;/code&gt;, so that &lt;code&gt;which {script}&lt;/code&gt; will work &lt;em&gt;without&lt;/em&gt; &lt;code&gt;.sh&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;method&#34;&gt;Method&lt;/h3&gt;&#xA;&lt;p&gt;A &lt;code&gt;for&lt;/code&gt; loop over &lt;code&gt;$(ls)&lt;/code&gt; is a basic solution, but &lt;code&gt;find&lt;/code&gt; is &lt;em&gt;more correct&lt;/em&gt; since it&amp;rsquo;s possible that a file name contains a space character.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Comparaison of Two Docker Images for Hugo</title>
      <link>https://vincenttam.gitlab.io/post/2018-12-21-comparaison-of-two-docker-images-for-hugo/</link>
      <pubDate>Fri, 21 Dec 2018 21:56:57 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-12-21-comparaison-of-two-docker-images-for-hugo/</guid>
      <description>&lt;p&gt;Having importing the repo for the &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt; theme &lt;a href=&#34;https://themes.gohugo.io/theme/hugo-theme-introduction/&#34;&gt;Introduction&lt;/a&gt; from &lt;a href=&#34;https://github.com/&#34;&gt;GitHub&lt;/a&gt; to&#xA;&lt;a href=&#34;https://gitlab.com/&#34;&gt;GitLab&lt;/a&gt;, I added the automatically generated GitLab CI config file and I ran&#xA;&lt;a href=&#34;https://gitlab.com/VincentTam/introduction/-/jobs/135854407&#34;&gt;job #135854407&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ cd exampleSite&#xA;$ hugo --themesDir=../.. -d ../public&#xA;hugo: /usr/lib/libstdc++.so.6: no version information available (required by hugo)&#xA;hugo: /usr/lib/libstdc++.so.6: no version information available (required by hugo)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;The build succeeded with the above message.  To suppress it,&#xA;&lt;a href=&#34;https://gitlab.com/VincentTam/introduction/-/jobs/136398450&#34;&gt;a switch to another CI runner&lt;/a&gt; will do.  The associated GitLab CI&#xA;config file was copied from &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt;&amp;rsquo;s documentation with&#xA;&lt;a href=&#34;https://gitlab.com/VincentTam/introduction/commit/4106d736e046d8e798034e9619b163e80adc67e5&#34;&gt;some customizations for Hugo sample sites&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Advanced Git</title>
      <link>https://vincenttam.gitlab.io/page/advanced-git/</link>
      <pubDate>Thu, 20 Dec 2018 08:29:17 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/page/advanced-git/</guid>
      <description>&lt;p&gt;Here goes more advanced &lt;a href=&#34;https://git-scm.com&#34;&gt;Git&lt;/a&gt; commands &lt;em&gt;not&lt;/em&gt; found among&#xA;&lt;a href=&#34;../bash-commands/#git&#34;&gt;the basic ones&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;for-each-ref&#34;&gt;for-each-ref&lt;/h3&gt;&#xA;&lt;p&gt;Display info in &lt;code&gt;.git/refs&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#!/bin/sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt;-each-ref --shell --format&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;ref=%(refname)&amp;#34;&lt;/span&gt; refs/tags &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;while&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;read&lt;/span&gt; entry&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;do&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nb&#34;&gt;eval&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$entry&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt;dirname &lt;span class=&#34;nv&#34;&gt;$ref&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;done&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This modified example taken from &lt;a href=&#34;https://git-scm.com/docs/git-for-each-ref&#34;&gt;the one in the official manual&lt;/a&gt; pipes&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;ref=refs/tags/181116&#xA;ref=refs/tags/copyBtn0&#xA;ref=refs/tags/fa531&#xA;ref=refs/tags/solarized&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;to a &lt;code&gt;while&lt;/code&gt; loop.  In each iteration, the &lt;code&gt;read&lt;/code&gt; command reads each line in the&#xA;piped output and sets it into the variable &lt;code&gt;entry&lt;/code&gt;.  The command will exit&#xA;normally unless it meets an EOF, so that the code inside can be executed.  The&#xA;variable &lt;code&gt;eval&lt;/code&gt; set the shell variable &lt;code&gt;ref&lt;/code&gt; to the output Git reference name.&#xA;&lt;code&gt;dirname&lt;/code&gt; chops off the tag names (&lt;code&gt;181116&lt;/code&gt;, &lt;code&gt;fa531&lt;/code&gt;, etc) and returns&#xA;&lt;code&gt;refs/tags&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Git URL Shortener Exception</title>
      <link>https://vincenttam.gitlab.io/post/2018-12-19-git-url-shortener-exception/</link>
      <pubDate>Wed, 19 Dec 2018 18:10:04 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-12-19-git-url-shortener-exception/</guid>
      <description>&lt;p&gt;Due to limitations on the number of characters imposed by the site owner, URL&#xA;shorteners are useful for shortening comments containing URL(s).  Nonetheless,&#xA;while commenting on &lt;a href=&#34;https://github.com/vickylai/hugo-theme-introduction/pull/119&#34;&gt;my recent PR for Introduction&lt;/a&gt;, I found that&#xA;&lt;a href=&#34;https://git.io/&#34;&gt;GitHub&amp;rsquo;s URL shortener&lt;/a&gt; had &lt;em&gt;lengthened&lt;/em&gt; the URL for &lt;a href=&#34;https://github.com/&#34;&gt;GitHub&lt;/a&gt;&amp;rsquo;s home&#xA;page.&lt;/p&gt;&#xA;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;https://vincenttam.gitlab.io/css/hugo-easy-gallery.css&#34; /&gt;&#xA;&lt;div class=&#34;box&#34; &gt;&#xA;  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;&#xA;    &lt;div class=&#34;img&#34;&gt;&#xA;      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;after.png&#34; alt=&#34;github home page short url&#34;/&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;a href=&#34;after.png&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;&#xA;      &lt;figcaption&gt;&lt;h4&gt;Output of &amp;#34;https://github.com&amp;#34; by GitHub&amp;#39;s URL Shortener&lt;/h4&gt;&#xA;          &lt;p&gt;A counterexample of GitHub&amp;#39;s URL Shortener&lt;/p&gt;&#xA;      &lt;/figcaption&gt;&#xA;  &lt;/figure&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Compare these two URLs.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;https://github.com&#xA;https://git.io/xE9D&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Staticman Invitation is Case Sensitive</title>
      <link>https://vincenttam.gitlab.io/post/2018-12-19-staticman-invitation-is-case-sensitive/</link>
      <pubDate>Wed, 19 Dec 2018 16:08:19 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-12-19-staticman-invitation-is-case-sensitive/</guid>
      <description>&lt;p&gt;HTML and URL links are &lt;em&gt;case insensitive&lt;/em&gt;.  For example, GOOGLE.COM and&#xA;google.com give the &lt;em&gt;same&lt;/em&gt; address.  As a result, after creating&#xA;&lt;a href=&#34;https://github.com/VincentTam/beautiful-jekyll/&#34;&gt;my fork of Beautiful Jekyll&lt;/a&gt;, I invited &lt;a href=&#34;https://github.com/staticmanlab&#34;&gt;@staticmanlab&lt;/a&gt;&#xA;to join my GitHub repo by firing the URL&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;https://staticman3.herokuapp.com/v3/connect/github/vincenttam/beautiful-jekyll&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;but I got&lt;/p&gt;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;gallery caption-position-bottom caption-effect-slide hover-effect-zoom hover-transition&#34; itemscope itemtype=&#34;http://schema.org/ImageGallery&#34;&gt;&#xA;    &#xA;  &#xA;  &lt;link rel=&#34;stylesheet&#34; href=&#34;https://vincenttam.gitlab.io/css/hugo-easy-gallery.css&#34; /&gt;&#xA;  &lt;div class=&#34;box&#34; &gt;&#xA;    &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;&#xA;      &lt;div class=&#34;img&#34; style=&#34;background-image: url(&#39;https://vincenttam.gitlab.io/invite1_s400.png&#39;);&#34;&gt;&#xA;        &lt;img itemprop=&#34;thumbnail&#34; src=&#34;invite1_s400.png&#34; alt=&#34;failed Staticman Lab invitation&#34;/&gt;&#xA;      &lt;/div&gt;&#xA;      &lt;a href=&#34;invite1.png&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;&#xA;        &lt;figcaption&gt;&lt;h4&gt;Failed Staticman invitation&lt;/h4&gt;&#xA;            &lt;p&gt;The case for GitHub user name doens&amp;#39;t match&lt;/p&gt;&#xA;        &lt;/figcaption&gt;&#xA;    &lt;/figure&gt;&#xA;  &lt;/div&gt;&#xA;&#xA;  &#xA;  &#xA;  &lt;div class=&#34;box&#34; &gt;&#xA;    &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;&#xA;      &lt;div class=&#34;img&#34; style=&#34;background-image: url(&#39;https://vincenttam.gitlab.io/invite2_s400.png&#39;);&#34;&gt;&#xA;        &lt;img itemprop=&#34;thumbnail&#34; src=&#34;invite2_s400.png&#34; alt=&#34;successful Staticman Lab invitation&#34;/&gt;&#xA;      &lt;/div&gt;&#xA;      &lt;a href=&#34;invite2.png&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;&#xA;        &lt;figcaption&gt;&lt;h4&gt;Successful Staticman invitation&lt;/h4&gt;&#xA;            &lt;p&gt;The case for GitHub user name match&lt;/p&gt;</description>
    </item>
    <item>
      <title>SCSS to SASS Converter</title>
      <link>https://vincenttam.gitlab.io/post/2018-12-19-scss-to-sass-converter/</link>
      <pubDate>Wed, 19 Dec 2018 01:56:58 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-12-19-scss-to-sass-converter/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;While &lt;a href=&#34;https://gitlab.com/VincentTam/introduction/commit/d44709cf1106c5ea4282234555a47c90961ae877&#34;&gt;porting Minimal Mistakes and Beautiful Hugo&amp;rsquo;s Staticman support&lt;/a&gt;&#xA;to &lt;a href=&#34;https://github.com/vickylai/hugo-theme-introduction&#34;&gt;Introduction&lt;/a&gt;, I searched for &amp;ldquo;SCSS to SASS&amp;rdquo; on &lt;a href=&#34;https://start.duckduckgo.com&#34;&gt;DuckDuckGo&lt;/a&gt;.&#xA;The search engine returned results on &amp;ldquo;CSS to SASS/SCSS&amp;rdquo; or &lt;em&gt;vice versa&lt;/em&gt;.  The&#xA;&lt;a href=&#34;https://mademistakes.com/work/minimal-mistakes-jekyll-theme/&#34;&gt;first theme&lt;/a&gt; has Staticman code in SCSS.  That would fit into the&#xA;&lt;a href=&#34;https://github.com/vickylai/hugo-theme-introduction&#34;&gt;third theme&lt;/a&gt;&amp;rsquo;s directory structure, which puts SASS files under&#xA;&lt;code&gt;assets/sass&lt;/code&gt;.  However, SASS &lt;em&gt;doesn&amp;rsquo;t&lt;/em&gt; have curly braces &lt;code&gt;{}&lt;/code&gt;.  I feared that&#xA;after hours of tedious manual replacement, the code would fail to run.  As a&#xA;consequence, I conducted such Internet search.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Math.SE Comment Templates</title>
      <link>https://vincenttam.gitlab.io/page/math-se-comment-templates/</link>
      <pubDate>Tue, 11 Dec 2018 12:38:28 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/page/math-se-comment-templates/</guid>
      <description>&lt;p&gt;Here&amp;rsquo;s a list of common comments for Math.SE newbies.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve posted them on &lt;a href=&#34;https://blogueun.wordpress.com/some-math-se-templates/&#34;&gt;WordPress.com&lt;/a&gt;, but I often got typos after updating&#xA;that page.  &lt;em&gt;Without&lt;/em&gt; version control, it&amp;rsquo;s hard to find out the cause of such&#xA;error.&lt;/p&gt;&#xA;&lt;h3 id=&#34;questions-lacking-context&#34;&gt;Questions lacking context&lt;/h3&gt;&#xA;&lt;div&gt;&lt;textarea readonly rows=&#34;6&#34; cols=&#34;80&#34;&gt;&#xA;[Welcome to Math.SE!](//math.meta.stackexchange.com/a/11168/290189) Please read [this post](//math.meta.stackexchange.com/a/9960/290189) and the others there for information on writing a good question for this site. In particular, people will be more willing to help if you [edit] your question to include some motivation, and an explanation of your own attempts.&#xA;&lt;/textarea&gt;&lt;/div&gt;&#xA;&lt;button class=&#34;copyBtn&#34;&gt;📝&lt;/button&gt;&#xA;&#xA;&lt;h3 id=&#34;questions-not-written-in-mathjax&#34;&gt;Questions not written in MathJax&lt;/h3&gt;&#xA;&lt;div&gt;&lt;textarea readonly rows=&#34;6&#34; cols=&#34;80&#34;&gt;&#xA;[Welcome to Math.SE!](//math.meta.stackexchange.com/a/4928/290189) Please use MathJax.  For some basic information about writing math at this site see e.g. [basic help on MathJax notation](/help/notation), [MathJax tutorial and quick reference](//math.meta.stackexchange.com/q/5020/290189), [main meta site math tutorial](//meta.stackexchange.com/a/70559/259305) and [equation editing how-to](//math.meta.stackexchange.com/q/1773/290189).&#xA;&lt;/textarea&gt;&lt;/div&gt;&#xA;&lt;button class=&#34;copyBtn&#34;&gt;📝&lt;/button&gt;&#xA;&#xA;&lt;h3 id=&#34;newbies-combo&#34;&gt;Newbies&amp;rsquo; combo&lt;/h3&gt;&#xA;&lt;div&gt;&lt;textarea readonly rows=&#34;6&#34; cols=&#34;80&#34;&gt;&#xA;[Welcome to Math.SE!](//math.meta.stackexchange.com/a/11168/290189) [Please use MathJax.](//math.meta.stackexchange.com/a/4928/290189)  For some basic information about writing math at this site, see [MathJax tutorial and quick reference](//math.meta.stackexchange.com/q/5020/290189) and [equation editing how-to](//math.meta.stackexchange.com/q/1773/290189). Please read [this post](//math.meta.stackexchange.com/a/9960/290189) for writing a good question.&#xA;&lt;/textarea&gt;&lt;/div&gt;&#xA;&lt;button class=&#34;copyBtn&#34;&gt;📝&lt;/button&gt;&#xA;&#xA;&lt;h3 id=&#34;newbies-pic-question&#34;&gt;Newbies&amp;rsquo; pic-question&lt;/h3&gt;&#xA;&lt;p&gt;To avoid excedding the upper limit of 500 characters, I&amp;rsquo;ve copied&#xA;and pasted &lt;em&gt;several&lt;/em&gt; comments and combined them into one.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Weak LLN Practice</title>
      <link>https://vincenttam.gitlab.io/post/2018-12-02-weak-lln-practice/</link>
      <pubDate>Sun, 02 Dec 2018 08:11:56 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-12-02-weak-lln-practice/</guid>
      <description>&lt;p&gt;My intended answer to &lt;a href=&#34;https://math.stackexchange.com/q/3022328/290189&#34;&gt;a weak LLN problem on Math.SE&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;: Suppose $(X_n)$ is a sequence of r.v&amp;rsquo;s satisfying $P(X_n=\pm\ln&#xA;(n))=\frac{1}{2}$ for each $n=1,2\dots$. I am trying to show that $(X_n)$&#xA;satisfies the weak LLN.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;The idea is to show that $P(\overline{X_n}&amp;gt;\varepsilon)$ tends to 0, but I am&#xA;unsure how to do so.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;My solution&lt;/strong&gt;: As in the accepted answer in OP&amp;rsquo;s previous question&#xA;&lt;a href=&#34;https://math.stackexchange.com/q/3021650/290189&#34;&gt;https://math.stackexchange.com/q/3021650/290189&lt;/a&gt;, I&amp;rsquo;ll assume the independence&#xA;of $(X_n)$.  By Chebylshev&amp;rsquo;s inequality,&lt;/p&gt;</description>
    </item>
    <item>
      <title>Staticman Lab New Logos</title>
      <link>https://vincenttam.gitlab.io/post/2018-11-21-staticmanlab-new-logos/</link>
      <pubDate>Wed, 21 Nov 2018 08:31:23 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-11-21-staticmanlab-new-logos/</guid>
      <description>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://vincenttam.gitlab.io/css/hugo-easy-gallery.css&#34; /&gt;&#xA;&lt;div class=&#34;box&#34; &gt;&#xA;  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;&#xA;    &lt;div class=&#34;img&#34;&gt;&#xA;      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://vincenttam.gitlab.io/img/staticmanlab.svg&#34; alt=&#34;StaticmanLab new logo&#34;/&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;a href=&#34;https://vincenttam.gitlab.io/img/staticmanlab.svg&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;&#xA;      &lt;figcaption&gt;&lt;h4&gt;StaticmanLab&amp;#39;s new logo&lt;/h4&gt;&#xA;          &lt;p&gt;GitLab logo recreated from Wikimedia&amp;#39;s logo by Darby under CC-BY-SA 4.0 and Staticman logo on GitHub by Erlen Masson under MIT.&lt;/p&gt;&#xA;      &lt;/figcaption&gt;&#xA;  &lt;/figure&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;The old icon for &lt;a href=&#34;https://gitlab.com/staticmanlab&#34;&gt;Staticman Lab&lt;/a&gt; was made by GIMP from Staticman&amp;rsquo;s&#xA;icon in PNG in the GitHub repo.  Recently, I&amp;rsquo;ve found the SVG version of this&#xA;icon.  To serve customers better, I&amp;rsquo;ve recreated the logo from this SVG file so&#xA;that the edges in the logo become sharper.&lt;/p&gt;</description>
    </item>
    <item>
      <title>About me</title>
      <link>https://vincenttam.gitlab.io/page/about/</link>
      <pubDate>Tue, 20 Nov 2018 15:10:10 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/page/about/</guid>
      <description>&lt;p&gt;A math student and a GNU/Linux user, built @staticmanlab on &lt;a href=&#34;https://gitlab.com/staticmanlab&#34;&gt;GitLab&lt;/a&gt; and&#xA;&lt;a href=&#34;https://github.com/staticmanlab&#34;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;useful-math-links&#34;&gt;Useful math links&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://docs.google.com/document/d/13eZpSdn8pWT0WqkrEaxXOLZOxq5VgKmRWjoyz7NT97E/edit?usp=share_link&#34;&gt;My Math Ebook list&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://homepage.ntu.edu.tw/~d04221001/Notes/Problems%20and%20Solutions%20Section/Problems%20and%20Solutions.html&#34;&gt;Solution to some classical math books&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.edu.upmc.fr/c2i/ressources/latex/aide-memoire.pdf&#34;&gt;$\LaTeX$ cheatsheet (in French)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://wysc.us.to/docs/assets/texit_cheatsheet_1.pdf&#34;&gt;TeXit cheatsheet&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://vincenttam.gitlab.io/math-live-preview/&#34;&gt;My little online math + Markdown editor with instant preview&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pandoc.org/demo/example16d.html&#34;&gt;Pandoc&amp;rsquo;s demo HTML slides&lt;/a&gt; (final slide) and&#xA;&lt;a href=&#34;https://pandoc.org/demo/SLIDES&#34;&gt;its Markdown source&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;useful-tech-links&#34;&gt;Useful tech links&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://vincenttam.github.io/visual-jyutping/&#34;&gt;My jyutping generator&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://classic.googleguide.com/sharpening_queries.html&#34;&gt;Google Advanced Search Form - Google Guide&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cangjieinput.com/&#34;&gt;Online Cangjie Input&lt;/a&gt; (and others like Pinyin, Quick, and Jyutping)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://cheatsheets.quantecon.org/&#34;&gt;MATLAB&amp;ndash;Python&amp;ndash;Julia cheatsheet &amp;mdash; Cheatsheets by QuantEcon&#xA;documentation&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://datascience-enthusiast.com/R/R_Julia_cheat_sheet.html&#34;&gt;R vs Julia cheatsheet - datascience-enthusiast.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.bitdegree.org/learn/&#34;&gt;BitDegree&amp;rsquo;s cheatsheets&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.tutorialspoint.com/codingground.htm&#34;&gt;Online compilers and terminals on Tutorials Point&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://caniuse.com/&#34;&gt;Web development Support tables&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;my-online-graphs&#34;&gt;My online graphs&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.geogebra.org/u/vincentkltam&#34;&gt;My online Geogebra plots&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.desmos.com/calculator/oa2fn5gdc6&#34;&gt;Trigonometric approximation of sawtooth wave&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.desmos.com/calculator/hkvzpvcbhh&#34;&gt;Simple sine functions for limits of integrals&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://docs.google.com/document/d/1pcbdaLVLTqPaFyxh7od3RKPt1a3THdN00SGUyiaHxB0/&#34;&gt;My &amp;ldquo;recipes&amp;rdquo;&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;my-presentations&#34;&gt;My presentations&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://vincenttam.gitlab.io/presentation-de-graphql/&#34;&gt;GraphQL with Ahmed&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://vincenttam.gitlab.io/post/2022-09-05-functions-for-arts/fct-slides.html&#34;&gt;Introduction to functions for arts stream students&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://vincenttam.gitlab.io/svg-ultimate-course/&#34;&gt;My SVG workbook&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://vincenttam.gitlab.io/note-2e-journee/&#34;&gt;Note pour la 2e journée&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://vincenttam.gitlab.io/html-slides-exemplaire/&#34;&gt;Note pour la 3e journée&lt;/a&gt;&#xA;(&lt;a href=&#34;https://vincenttam.gitlab.io/html-slides-exemplaire/index-en.html&#34;&gt;English version&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://vincenttam.gitlab.io/exo-3e-jour/&#34;&gt;Exos pour la 5e journée&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://vincenttam.gitlab.io/algo1/&#34;&gt;Exos pour la 1e journée en algorithmique&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://vincenttam.gitlab.io/documents/generalized_cauchy_schwarz.pdf&#34;&gt;Notes for generalized Cauchy–Schwarz inequality&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://vincenttam.gitlab.io/documents/alg_manip.html&#34;&gt;Sample Touying slides&lt;/a&gt; (&lt;a href=&#34;https://vincenttam.gitlab.io/documents/alg_manip.typ&#34;&gt;source&lt;/a&gt;&#xA;containing my logo&#xA;&lt;img class=&#34;small-inline-icons&#34; src=&#34;https://vincenttam.gitlab.io/documents/vin100_logo.svg&#34;&gt;)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;games&#34;&gt;Games&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://vincenttam.github.io/SpaceCadetPinball/&#34;&gt;My tweak on Spaceball Cadet&lt;/a&gt;&amp;rsquo;s GitHub Page port.&lt;/li&gt;&#xA;&lt;/ol&gt;</description>
    </item>
    <item>
      <title>Solution to a $p$-test Exercise</title>
      <link>https://vincenttam.gitlab.io/post/2018-11-20-solution-to-a-p-test-exercise/</link>
      <pubDate>Tue, 20 Nov 2018 12:09:46 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-11-20-solution-to-a-p-test-exercise/</guid>
      <description>&lt;p&gt;I intended to answer &lt;a href=&#34;https://math.stackexchange.com/q/3005870/290189&#34;&gt;Maddle&amp;rsquo;s $p$-test question&lt;/a&gt;, but T. Bongers has beaten&#xA;me by two minutes, so I posted my answer here to save my work.&lt;/p&gt;&#xA;&lt;p&gt;The problem statement&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;This is the sum:&#xA;$$\sum\limits_{n=3}^\infty\frac{1}{n\cdot\ln(n)\cdot\ln(\ln(n))^p}$$&#xA;How do I tell which values of $p$ allow this to converge? The ratio test isn&amp;rsquo;t&#xA;working out for me at all.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;unpublished-solution&#34;&gt;Unpublished solution&lt;/h3&gt;&#xA;&lt;p&gt;The integral test will do.&lt;/p&gt;&#xA;&lt;div&gt;&#xA;$$&#xA;\begin{aligned}&#xA;&amp; \int_3^{+\infty} \frac{1}{x\cdot\ln(x)\cdot\ln(\ln(x))^p} \,dx \\&#xA;&amp;= \int_3^{+\infty} \frac{1}{\ln(x)\cdot\ln(\ln(x))^p} \,d(\ln x) \\&#xA;&amp;= \int_3^{+\infty} \frac{1}{\ln(\ln(x))^p} \,d(\ln(\ln(x))) \\&#xA;&amp;= \begin{cases}&#xA;[\ln(\ln(\ln(x)))]_3^{+\infty} &amp; \text{if } p = 1 \\&#xA;\left[\dfrac{[\ln(\ln(x))}{p+1}]^{p+1} \right]_3^{+\infty} &amp; \text{if } p \ne 1&#xA;\end{cases}&#xA;\end{aligned}&#xA;$$&#xA;&lt;/div&gt;&#xA;&lt;p&gt;When $p \ge 1$, the improper integral diverges.  When $p &amp;lt; 1$, it converges.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Merge GitHub Pull Requests</title>
      <link>https://vincenttam.gitlab.io/post/2018-11-18-merge-github-pull-requests/</link>
      <pubDate>Sun, 18 Nov 2018 01:05:42 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-11-18-merge-github-pull-requests/</guid>
      <description>&lt;h3 id=&#34;aim&#34;&gt;Aim&lt;/h3&gt;&#xA;&lt;p&gt;To merge a pull request.&lt;/p&gt;&#xA;&lt;h3 id=&#34;how&#34;&gt;How?&lt;/h3&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s take &lt;a href=&#34;https://github.com/eduardoboucas/staticman/pull/231&#34;&gt;Staticman PR 231&lt;/a&gt; as an example.  I would like to test it before&#xA;&lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-09-16-staticman-powered-gitlab-pages/2/&#34;&gt;commiting this merget to Heroku&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ cd ~/staticman&#xA;$ git branch -a&#xA;* deploy&#xA;  dev&#xA;  master&#xA;  ...&#xA;$ git remote -v&#xA;eduardoboucas https://github.com/eduardoboucas/staticman.git (fetch)&#xA;eduardoboucas https://github.com/eduardoboucas/staticman.git (push)&#xA;heroku  https://git.heroku.com/staticman3.git (fetch)&#xA;heroku  https://git.heroku.com/staticman3.git (push)&#xA;...&#xA;$ git pull eduardoboucas pull/231/head:deploy&#xA;remote: Enumerating objects: 10, done.&#xA;remote: Counting objects: 100% (10/10), done.&#xA;remote: Total 18 (delta 10), reused 10 (delta 10), pack-reused 8&#xA;Unpacking objects: 100% (18/18), done.&#xA;From https://github.com/eduardoboucas/staticman&#xA; ! [rejected]        refs/pull/231/head -&amp;gt; deploy  (non-fast-forward)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;I executed the last command on branch &lt;code&gt;dev&lt;/code&gt;.  I &lt;em&gt;didn&amp;rsquo;t&lt;/em&gt; have time to figure out&#xA;the reason for this error.  The following commands should work.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nested Comments in Beautiful Hugo</title>
      <link>https://vincenttam.gitlab.io/post/2018-11-17-nested-comments-in-beautiful-hugo/</link>
      <pubDate>Sat, 17 Nov 2018 15:12:50 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-11-17-nested-comments-in-beautiful-hugo/</guid>
      <description>&lt;h3 id=&#34;quick-links&#34;&gt;Quick links&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://vincenttam.gitlab.io/bhdemo&#34;&gt;A minimal demo site on GitLab&lt;/a&gt; (&lt;a href=&#34;https://gitlab.com/vincenttam/bhdemo&#34;&gt;Source&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/halogenica/beautifulhugo/pull/222&#34;&gt;Beautiful Hugo pull request 222&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/VincentTam/beautifulhugo/releases/tag/reply-rc1.1&#34;&gt;Pre-release notes for this pull request&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;motivation&#34;&gt;Motivation&lt;/h3&gt;&#xA;&lt;p&gt;For the mathematical ones, please see &lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-11-17-interactive-blog-on-static-web-host/&#34;&gt;my previous post&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;As a math student, it&amp;rsquo;s &lt;em&gt;inefficient&lt;/em&gt; to reinvent the wheel like engineering&#xA;students.  Thanks to three existing examples, I had convinced myself that I&#xA;could bring this to the theme &lt;a href=&#34;https://themes.gohugo.io/beautifulhugo/&#34;&gt;Beautiful Hugo&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://zongren.me/&#34;&gt;Zongren&amp;rsquo;s Hexo theme&lt;/a&gt; (worked best)&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://mademistakes.com/&#34;&gt;Made Mistakes&lt;/a&gt; Jekyll theme&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://networkhobo.com/&#34;&gt;Network Hobo&amp;rsquo;s customization of Beautiful Hugo&lt;/a&gt; (inspired by the second&#xA;one, but contains a logic error)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Interactive Blog on Static Web Host</title>
      <link>https://vincenttam.gitlab.io/post/2018-11-17-interactive-blog-on-static-web-host/</link>
      <pubDate>Sat, 17 Nov 2018 10:09:12 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-11-17-interactive-blog-on-static-web-host/</guid>
      <description>&lt;h3 id=&#34;vision&#34;&gt;Vision&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;gain autonomy: freedom is the basis of moral actions.  No freedom, no&#xA;morality.&lt;/li&gt;&#xA;&lt;li&gt;transcend ourselves: change/improve our lives through free thoughts&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;p&gt;Convert our free thoughts into free code.&lt;/p&gt;&#xA;&lt;p&gt;Free code allows users around the world to run and/or improve them.  This would&#xA;bring real enhancement to our tools.&lt;/p&gt;&#xA;&lt;p&gt;For example, beautiful math writing used to be a complicated process.  A decade&#xA;ago, this required the installation of a typesetting engine called $\LaTeX$.&#xA;Thanks to freely available scripts like &lt;a href=&#34;https://www.mathjax.org/&#34;&gt;MathJax&lt;/a&gt; and &lt;a href=&#34;https://katex.org/&#34;&gt;$\KaTeX$&lt;/a&gt;, it&amp;rsquo;s now&#xA;possible to write math viewable by any modern web browser by writing the content&#xA;in the middle.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Simplex Calculations for Stokes&#39; Theorem</title>
      <link>https://vincenttam.gitlab.io/post/2018-11-03-simplex-calculations-for-stokes-theorem/</link>
      <pubDate>Sat, 03 Nov 2018 02:05:58 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-11-03-simplex-calculations-for-stokes-theorem/</guid>
      <description>&lt;dl&gt;&#xA;&lt;dt&gt;Oriented affine $k$-simplex $\sigma = [{\bf p}_0,{\bf p}_1,\dots,{\bf p}_k]$&lt;/dt&gt;&#xA;&lt;dd&gt;A $k$-surface given by the &lt;em&gt;affine&lt;/em&gt; function&#xA;&lt;div&gt;&#xA;$$&#xA;\sigma\left(\sum_{i=1}^k a_i {\bf e}_i \right) := {\bf p}_0 +&#xA;\sum_{i=1}^k a_i ({\bf p}_i - {\bf p}_0) \tag{1},&#xA;$$&#xA;&lt;/div&gt;&#xA;&lt;p&gt;where ${\bf p}_i \in \R^n$ for all $i \in \{1,\dots,k\}$.&lt;br&gt;&#xA;In particular, $\sigma({\bf 0})={\bf p}_0$ and for each $i\in\{1,\dots,k\}$,&#xA;$\sigma({\bf e}_i)={\bf p}_i$.&lt;/p&gt;&#xA;&lt;/dd&gt;&#xA;&lt;dt&gt;Standard simplex $Q^k := [{\bf 0}, {\bf e}_1, \dots, {\bf e}_k]$&lt;/dt&gt;&#xA;&lt;dd&gt;A particular type of oriented affine $k$-simplex with the standard basis&#xA;$\{{\bf e}_1, \dots, {\bf e}_k\}$ of $\R^k$.&#xA;&lt;div&gt;&#xA;$$&#xA;Q^k := \left\{ \sum_{i=1}^k a_i {\bf e}_i \Biggm|&#xA;\forall i \in \{1,\dots,k\}, a_i \ge 0, \sum_{i=1}^k a_i = 1 \right\}&#xA;$$&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Note that an oriented affine $k$-simplex $\sigma$ has &lt;em&gt;parameter domain&lt;/em&gt;&#xA;$Q^k$.&lt;/p&gt;</description>
    </item>
    <item>
      <title>La norme lipschitzienne est complète</title>
      <link>https://vincenttam.gitlab.io/post/2018-11-02-la-norme-lipschitzienne-est-complete/</link>
      <pubDate>Fri, 02 Nov 2018 23:50:57 +0100</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-11-02-la-norme-lipschitzienne-est-complete/</guid>
      <description>&lt;p&gt;Dans &lt;a href=&#34;https://web.archive.org/web/20200805155814/http://archive.numdam.org/article/ASENS_1953_3_70_3_267_0.pdf&#34;&gt;l&amp;rsquo;article de Robert Fortet et Edith Mourier en 1953&lt;/a&gt;, une distance&#xA;entre deux mesures de probabilité sur un espace métrique est définie.&lt;/p&gt;&#xA;&lt;p&gt;De nos jours, je trouve la façon dont ils l&amp;rsquo;ont écrit assez difficile à&#xA;comprendre.  Je suis plus à l&amp;rsquo;aise avec $\sup$ que &amp;ldquo;b.s.&amp;rdquo; que désigne &amp;ldquo;borne&#xA;supérieure&amp;rdquo;.  Ils se sont servi de $M[f]$ pour $\lVert f \rVert_{\rm Lip}$, où&lt;/p&gt;&#xA;&lt;p&gt;$$&#xA;\lVert f \rVert_{\rm Lip} = \sup_{x \ne y} \frac{|f(x) - f(y)|}{d(x, y)}.&#xA;$$&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mesurabilité des réalisations trajectorielles</title>
      <link>https://vincenttam.gitlab.io/post/2018-10-11-mesurabilite-des-realisations-trajectorielles/</link>
      <pubDate>Thu, 11 Oct 2018 23:20:37 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-10-11-mesurabilite-des-realisations-trajectorielles/</guid>
      <description>&lt;h3 id=&#34;notations&#34;&gt;Notations&lt;/h3&gt;&#xA;&lt;p&gt;Supposons &lt;em&gt;toutes&lt;/em&gt; les notations dans &lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-09-28-espace-de-trajectoires/&#34;&gt;&lt;em&gt;Espace de trajectoires&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;problématique&#34;&gt;Problématique&lt;/h3&gt;&#xA;&lt;p&gt;La mesurabilité de l&amp;rsquo;application dans le sous-titre est basée sur l&amp;rsquo;égalité&#xA;suivante.&lt;/p&gt;&#xA;&lt;div&gt;&#xA;$$&#xA;\Bor{\R}{\OXT} \cap \CO = \Bor{\CO}&#xA;$$&#xA;&lt;/div&gt;&#xA;&lt;p&gt;J&amp;rsquo;ai passé &lt;em&gt;quatres heures&lt;/em&gt; pour comprendre&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;pourquoi ça entraîne la mesurabilité ?&lt;/li&gt;&#xA;&lt;li&gt;pourquoi l&amp;rsquo;égalité elle-même est vraie ?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;réponses&#34;&gt;Réponses&lt;/h3&gt;&#xA;&lt;h4 id=&#34;mesurabilité-de-la-trace-sur-co-de-borroxt&#34;&gt;Mesurabilité de la trace sur $\CO$ de $\Bor{\R}{\OXT}$&lt;/h4&gt;&#xA;&lt;p&gt;A la première lecture, je ne connaisais même pas la définition de la &lt;em&gt;trace&lt;/em&gt;&#xA;d&amp;rsquo;une tribu sur un emsemble.  En effet, c&amp;rsquo;est une définition &lt;em&gt;universaire&lt;/em&gt; sur&#xA;des ensembles, selon &lt;a href=&#34;https://math.stackexchange.com/q/2945805/290189&#34;&gt;une question sur la trace&lt;/a&gt; sur Math.SE.&lt;/p&gt;</description>
    </item>
    <item>
      <title>What are Dataframes?</title>
      <link>https://vincenttam.gitlab.io/post/2018-10-07-what-are-dataframes/</link>
      <pubDate>Sun, 07 Oct 2018 17:30:49 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-10-07-what-are-dataframes/</guid>
      <description>&lt;h3 id=&#34;motivation&#34;&gt;Motivation&lt;/h3&gt;&#xA;&lt;p&gt;The books that I read in the past &lt;em&gt;didn&amp;rsquo;t&lt;/em&gt; explain what a dataframe meant.&lt;/p&gt;&#xA;&lt;h3 id=&#34;definition&#34;&gt;Definition&lt;/h3&gt;&#xA;&lt;dl&gt;&#xA;&lt;dt&gt;Dataframe&lt;/dt&gt;&#xA;&lt;dd&gt;A table of data in which &lt;em&gt;the values of each observed variable is contained in&#xA;the same column&lt;/em&gt;.&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;h3 id=&#34;counterexample&#34;&gt;Counterexample&lt;/h3&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve difficulty in reading long lines of text like the above definition, so&#xA;let&amp;rsquo;s illustrate this definition with a counterexample.&lt;/p&gt;&#xA;&lt;p&gt;We have carried out repeated experiments with four types of things and obtaine&#xA;some data. (Say, poured some liquid into an empty cup and take the temperature.)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Enlarged /var Partition</title>
      <link>https://vincenttam.gitlab.io/post/2018-10-06-enlarged-var-partition/</link>
      <pubDate>Sat, 06 Oct 2018 08:02:36 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-10-06-enlarged-var-partition/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve installed &lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-08-18-ubuntu-18-04-installation-on-fujitsu-ah557/#stage-2-try-a-live-session-before-installation&#34;&gt;Ubuntu 18.04 on my new laptop&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;code&gt;/var&lt;/code&gt; partition was &lt;em&gt;too small&lt;/em&gt;.  The system complained that only&#xA;200 MB was left.&lt;/p&gt;&#xA;&lt;h3 id=&#34;solution&#34;&gt;Solution&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Rebooted with my &lt;i class=&#34;fab fa-linux&#34; aria-hidden&gt;&lt;/i&gt; live USB.&lt;/li&gt;&#xA;&lt;li&gt;Opened GParted.&lt;/li&gt;&#xA;&lt;li&gt;Moved &lt;code&gt;/tmp&lt;/code&gt; partition to the left and grew it to 6 GB.&lt;/li&gt;&#xA;&lt;li&gt;Grew &lt;code&gt;/var&lt;/code&gt; partition  to 16 GB&lt;/li&gt;&#xA;&lt;li&gt;Click &lt;button type=&#34;submit&#34;&gt;&lt;i class=&#34;fas fa-check&#34; aria-hidden&gt;&lt;/i&gt;&lt;/button&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;!-- more --&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://vincenttam.gitlab.io/post/2018-10-06-enlarged-var-partition/gparted-running.png&#34; alt=&#34;GParted screenshot&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;results&#34;&gt;Results&lt;/h3&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://vincenttam.gitlab.io/post/2018-10-06-enlarged-var-partition/gparted-finished.png&#34; alt=&#34;GParted result partition table&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;details-tldr&#34;&gt;Details [TL;DR]&lt;/h3&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s the GParted generated log.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ultrafilters Are Maximal</title>
      <link>https://vincenttam.gitlab.io/post/2018-10-05-ultrafilters-are-maximal/</link>
      <pubDate>Fri, 05 Oct 2018 13:19:36 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-10-05-ultrafilters-are-maximal/</guid>
      <description>&lt;dl&gt;&#xA;&lt;dt&gt;Ultra filter&lt;/dt&gt;&#xA;&lt;dd&gt;A filer $\mathcal{F}$ containing either $Y$ or $Y^\complement$ for &lt;em&gt;any&lt;/em&gt;&#xA;$Y \subseteq X$.&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;p&gt;Two days ago, I spent an afternoon to understand Dudley&amp;rsquo;s proof of this little&#xA;result.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;A filter is contained in some ultrafilter.  A filter is an ultrafilter iff&#xA;it&amp;rsquo;s maximal.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;At the first glance, I &lt;em&gt;didn&amp;rsquo;t&lt;/em&gt; even understand the &lt;em&gt;organisation&lt;/em&gt; of the proof!&#xA;I&amp;rsquo;m going to rephrase it for future reference.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;only if: let $\mathcal{F}$ be an ultrafilter contained in another filter&#xA;$\mathcal{G}$.  If $\mathcal{F}$ &lt;em&gt;isn&amp;rsquo;t&lt;/em&gt; maximal, let $Y \in \mathcal{G}&#xA;\setminus \mathcal{F}$.  Since $\mathcal{F}$ is an ultrafilter, either $Y \in&#xA;\mathcal{F}$ or $Y^\complement \in \mathcal{F}$.  By construction of $Y$, only&#xA;the later option is possible, so $Y^\complement \in \mathcal{G}$ by hypothesis,&#xA;but this contradicts our assumption $Y \in \mathcal{G}$: $\varnothing = Y \cap&#xA;Y^\complement \in \mathcal{G}$, which is &lt;em&gt;false&lt;/em&gt; since $\mathcal{G}$ is a&#xA;filter.&lt;/p&gt;</description>
    </item>
    <item>
      <title>2018-10-04 Seminar Notes</title>
      <link>https://vincenttam.gitlab.io/post/2018-10-04-seminar-notes/</link>
      <pubDate>Thu, 04 Oct 2018 02:16:44 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-10-04-seminar-notes/</guid>
      <description>&lt;p&gt;I jotted down only a few keywords that might be reusable.  I &lt;em&gt;didn&amp;rsquo;t&lt;/em&gt; understand&#xA;any of the talks.&lt;/p&gt;&#xA;&lt;h3 id=&#34;functional-data-analysis&#34;&gt;Functional Data Analysis&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Goal: predict equipment temperature&lt;/li&gt;&#xA;&lt;li&gt;Tools: Fourier coefficients (trigo ones), followed by discretisation,&#xA;min-error estimation, cross-validation 10-folds, $R^2$ adjusted ?, MAE, MSPE&lt;/li&gt;&#xA;&lt;li&gt;Comparison with non-functional data&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;tolérancement&#34;&gt;Tolérancement&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Thème : Traiter les incertitudes sur les dimensions des pièces de l&amp;rsquo;avion&lt;/li&gt;&#xA;&lt;li&gt;Objectif :&#xA;&lt;ul&gt;&#xA;&lt;li&gt;établir une modélisation mathématiques&lt;/li&gt;&#xA;&lt;li&gt;construire un virtual twin de l&amp;rsquo;avion&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Outils :&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Modèle de variabilité&lt;/li&gt;&#xA;&lt;li&gt;Modèle d&amp;rsquo;assemblage $\text{airbus}: Y = \sum_{i = 1}^n a_iX_i?$&lt;/li&gt;&#xA;&lt;li&gt;Notion de risque &amp;hellip; calculs des coefficients de convolution&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;svm&#34;&gt;SVM&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Multiclass vs structual, hidden Markov model&lt;/li&gt;&#xA;&lt;li&gt;Plan for this year:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;apply structual SVM for real SVM&lt;/li&gt;&#xA;&lt;li&gt;apply structual SVM for deep neural network&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;auxiliary-information&#34;&gt;Auxiliary information&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;auxiliary function given in one partition&lt;/li&gt;&#xA;&lt;li&gt;auxiliary function given in mutiple partitions&lt;/li&gt;&#xA;&lt;li&gt;bootstrap&lt;/li&gt;&#xA;&lt;li&gt;law of iterated logarithms&lt;/li&gt;&#xA;&lt;li&gt;Kullback&amp;ndash;Leibler distance&lt;/li&gt;&#xA;&lt;li&gt;convergence: Donsker class, var, covar&lt;/li&gt;&#xA;&lt;li&gt;ranking ration method: convergence to Gaussian process, entropy conditions,&#xA;Telegrandś inequality&#xA;&lt;ul&gt;&#xA;&lt;li&gt;weak convergence: KMT, Berthet-Maison&lt;/li&gt;&#xA;&lt;li&gt;strong convergence: ?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;consequences: Berry-Essen bound, bias &amp;amp; variance estimation of ranking&#xA;ration method&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;euler-scheme-sde&#34;&gt;Euler scheme SDE&lt;/h3&gt;&#xA;&lt;p&gt;I could only write &amp;ldquo;Toeplitz tape operator&amp;rdquo;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Measures Are Regular</title>
      <link>https://vincenttam.gitlab.io/post/2018-10-03-measures-are-regular/</link>
      <pubDate>Wed, 03 Oct 2018 22:28:34 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-10-03-measures-are-regular/</guid>
      <description>&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;To show that a measure $\mu$ defined on a metric space $(S,d)$ is regular.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;outer regularity: approximation by inner closed sets&lt;/li&gt;&#xA;&lt;li&gt;inner regularity: approximation by outer open sets&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;discussion&#34;&gt;Discussion&lt;/h3&gt;&#xA;&lt;p&gt;Since this problem involves &lt;em&gt;all&lt;/em&gt; borel sets $A \in \mathcal{B}(S)$, the direct&#xA;way $\forall A \in \mathcal{B}(S), \dots$ &lt;em&gt;won&amp;rsquo;t&lt;/em&gt; work.  We have to use the&#xA;&lt;em&gt;indirect&lt;/em&gt; way: denote $$\mathcal{C} = \lbrace A \in \mathcal{B}(S) \mid&#xA;\mathinner{\text{desired properties}} \dots \rbrace.$$  Show that&lt;/p&gt;</description>
    </item>
    <item>
      <title>Filters and Nets</title>
      <link>https://vincenttam.gitlab.io/post/2018-10-03-filters-and-nets/</link>
      <pubDate>Wed, 03 Oct 2018 11:27:55 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-10-03-filters-and-nets/</guid>
      <description>&lt;h3 id=&#34;motivation&#34;&gt;Motivation&lt;/h3&gt;&#xA;&lt;p&gt;$$ \gdef\vois#1#2{\mathcal{V}_{#1}(#2)} $$&lt;/p&gt;&#xA;&lt;p&gt;Nets and filters are used for describing convergence in a non-metric space $X$.&lt;/p&gt;&#xA;&lt;p&gt;Denote the collection of (open) neighbourhoods of $x \in X$ by $$\vois{X}{x}$$.&lt;/p&gt;&#xA;&lt;h3 id=&#34;definitions-and-examples&#34;&gt;Definitions and examples&lt;/h3&gt;&#xA;&lt;dl&gt;&#xA;&lt;dt&gt;Directed set&lt;/dt&gt;&#xA;&lt;dd&gt;A &lt;em&gt;partially ordered set&lt;/em&gt; $I$ such that&#xA;$$\forall i, j \in I: i \le j, \exists k \in I: k \ge j.$$&lt;/dd&gt;&#xA;&lt;dt&gt;Net&lt;/dt&gt;&#xA;&lt;dd&gt;A function in $X^I$, where $I$ is a directed set.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;example: any sequence in $X^\N$&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/dd&gt;&#xA;&lt;dt&gt;Convergence of nets to a point&lt;/dt&gt;&#xA;&lt;dd&gt;$x_i \to x$ if&#xA;$$\forall A \in \vois{X}{x}, \exists j \in I: \forall k \ge j, x_k \in A.$$&#xA;&lt;ul&gt;&#xA;&lt;li&gt;example: absolute convergence of series ($I$ is the collection of finite&#xA;subsets of $\N$, finite sum $\Sigma \in \R^I$.)&lt;/li&gt;&#xA;&lt;li&gt;example: Riemann integral ($I$ is the collection of tagged partitions,&#xA;the partial order &lt;em&gt;doesn&amp;rsquo;t&lt;/em&gt; depend on tags, $\int \in \R^I$.)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/dd&gt;&#xA;&lt;dt&gt;Filter base&lt;/dt&gt;&#xA;&lt;dd&gt;A nonempty collection $\mathcal{F} \subseteq \mathcal{P}(X) \setminus&#xA;{\varnothing}$ such that&#xA;$$\forall F,G \in \mathcal{F},\exists H \in \mathcal{F}: H \subseteq F \cap G.$$&#xA;(contains nonempty part of intersection)&lt;br&gt;&#xA;Difference with topological basis: sets have to be nonempty here&lt;/dd&gt;&#xA;&lt;dt&gt;Filter&lt;/dt&gt;&#xA;&lt;dd&gt;A filter base $\mathcal{F}$ so that&#xA;&lt;ul&gt;&#xA;&lt;li&gt;contains supersets: $\forall F \in \mathcal{F}, \forall G \supseteq F, G \in \mathcal{F}$&lt;/li&gt;&#xA;&lt;li&gt;contains intersection: $\forall F, G \in \mathcal {F}, F \cap G \in \mathcal{F}$&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;p&gt;The image of a filter $\mathcal{F}$ under a function $f$ is also a filter,&#xA;denoted by $f[[\mathcal{F}]]$.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cover Letter Organisation</title>
      <link>https://vincenttam.gitlab.io/post/2018-10-02-cover-letter-organisation/</link>
      <pubDate>Tue, 02 Oct 2018 21:50:02 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-10-02-cover-letter-organisation/</guid>
      <description>&lt;p&gt;I keep sentences below short and minimal for memory.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Sender&amp;rsquo;s contact info at top-right hand corner, followed by receipent&amp;rsquo;s&#xA;contact info left-aligned.&lt;/li&gt;&#xA;&lt;li&gt;&amp;ldquo;I&amp;rsquo;m &amp;hellip;&amp;rdquo;, &amp;ldquo;apply for &amp;hellip;, as advertised in &amp;hellip;&amp;rdquo;&lt;/li&gt;&#xA;&lt;li&gt;Why apply?  Link with the company(&amp;rsquo;s employee)&lt;/li&gt;&#xA;&lt;li&gt;Pastimes (all-rounded person), continual learning (for useful skills)&lt;/li&gt;&#xA;&lt;li&gt;Friendly, polite and to-the-point sign-off&lt;/li&gt;&#xA;&lt;li&gt;Signature followed by sender&amp;rsquo;s name&lt;/li&gt;&#xA;&lt;/ol&gt;</description>
    </item>
    <item>
      <title>Minimal Jekyll Site with Static Comments</title>
      <link>https://vincenttam.gitlab.io/post/2018-09-30-minimal-jekyll-site-with-static-comments/</link>
      <pubDate>Sun, 30 Sep 2018 23:59:14 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-09-30-minimal-jekyll-site-with-static-comments/</guid>
      <description>&lt;h3 id=&#34;introduction&#34;&gt;Introduction&lt;/h3&gt;&#xA;&lt;p&gt;This is the &lt;a href=&#34;https://pages.github.com/&#34;&gt;GitHub Pages&lt;/a&gt; version to&#xA;&lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-09-16-staticman-powered-gitlab-pages/1/&#34;&gt;my GitLab Pages with Staticman tutorial&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I &lt;em&gt;didn&amp;rsquo;t&lt;/em&gt; plan to test whether &lt;a href=&#34;https://dev.staticman.net&#34;&gt;Staticman v3&lt;/a&gt; work on &lt;a href=&#34;https://github.com&#34;&gt;GitHub&lt;/a&gt; since it&amp;rsquo;s&#xA;&lt;em&gt;proprietary&lt;/em&gt;.  However, from Staticman issues &lt;a href=&#34;https://github.com/eduardoboucas/staticman/issues/222&#34;&gt;#222&lt;/a&gt; and &lt;a href=&#34;https://github.com/eduardoboucas/staticman/issues/227&#34;&gt;#227&lt;/a&gt;,&#xA;we know that the official server &lt;em&gt;doesn&amp;rsquo;t&lt;/em&gt; respond to&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;GET /v2/connnect/&amp;lt;USERNAME&amp;gt;/&amp;lt;REPONAME&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;To help others, I self-advertised &lt;a href=&#34;https://staticman3.herokuapp.com/&#34;&gt;my own Staticman API instance&lt;/a&gt; and the&#xA;migration to &lt;a href=&#34;https://docs.gitlab.com/ee/user/project/pages/&#34;&gt;GitLab pages&lt;/a&gt;.  &lt;em&gt;Unfortunately&lt;/em&gt;, nobody had managed to&#xA;create a GitHub repo running on my API instance.  To convince others that it&amp;rsquo;s&#xA;also &lt;em&gt;working&lt;/em&gt; on &lt;a href=&#34;https://github.com&#34;&gt;GitHub&lt;/a&gt;, I decided to create a minimal GitHub repo.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Espace de trajectoires</title>
      <link>https://vincenttam.gitlab.io/post/2018-09-28-espace-de-trajectoires/</link>
      <pubDate>Fri, 28 Sep 2018 10:41:32 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-09-28-espace-de-trajectoires/</guid>
      <description>&lt;h3 id=&#34;tribu-produit&#34;&gt;Tribu produit&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;source&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;symbole&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;engendrée par&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Prof&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;$\Er{\OXT}$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;$\mathcal{C}_0 = \Big\lbrace \lbrace f \in E^\Bbb{T} \mid f(t) \in B \rbrace \bigm\vert t \in \Bbb{T}, B \in \Er \Big\rbrace$ &lt;br&gt; $\mathcal{C}_1 = \Big\lbrace \lbrace f \in E^\Bbb{T} \mid f(t_i) \in B_i \forall i \in \lbrace 1,\dots,n \rbrace \rbrace \newline \bigm\vert t_j \in \Bbb{T}, B_j \in \Er \forall j \in \lbrace 1,\dots,n \rbrace, n \in \N^* \Big\rbrace$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Meyre&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;$\bigotimes_{t \in \Bbb{T}} \Er$&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;des cylindres $C = \prod_{t \in \Bbb{T}} A_t$ &lt;br&gt; d&amp;rsquo;ensembles mesurables $A_t \in \Er$ &lt;br&gt; de dimension finie $\card{\lbrace t \in \Bbb{T} \mid A_t \neq E \rbrace} &amp;lt; \infty$&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;Je trouve $\Er{\OXT}$ plus court à écrire, tandis que&#xA;$\bigotimes_{t \in \Bbb{T}} \Er$ est plus flexible.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Real Number Construction From Dedekind Cuts</title>
      <link>https://vincenttam.gitlab.io/post/2018-09-27-real-number-construction-from-dedekind-cuts/</link>
      <pubDate>Thu, 27 Sep 2018 20:48:40 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-09-27-real-number-construction-from-dedekind-cuts/</guid>
      <description>&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;p&gt;To gain a &lt;em&gt;real&lt;/em&gt; understanding on &lt;em&gt;real numbers&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;analytical-construction&#34;&gt;Analytical construction&lt;/h3&gt;&#xA;&lt;p&gt;I &amp;ldquo;swallowed&amp;rdquo; the &lt;a href=&#34;https://en.wikipedia.org/wiki/Completeness_of_the_real_numbers&#34;&gt;Compleness Axiom&lt;/a&gt;, then I worked on exercises on&#xA;$\sup$ and $\inf$, and then the&#xA;&lt;a href=&#34;https://en.wikipedia.org/wiki/Limit_of_a_sequence#Formal_definition&#34;&gt;$\epsilon$-$\delta$ criterion for limits&lt;/a&gt;, before completing $\Q$ with&#xA;&lt;a href=&#34;https://en.wikipedia.org/wiki/Cauchy_sequence&#34;&gt;Cauchy sequences&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve also heard about the &lt;a href=&#34;https://en.wikipedia.org/wiki/Complete_metric_space#Completion&#34;&gt;completion of a metric space&lt;/a&gt; in a more&#xA;general setting.  My professor once said that it suffices to view this proof&#xA;once throughout lifetime: the proof itself &lt;em&gt;wasn&amp;rsquo;t&lt;/em&gt; very useful.&lt;/p&gt;&#xA;&lt;p&gt;The basic arithmetic properties of $\R$, as an equivalence class of Cauchy&#xA;sequences sharing the same limits, &lt;em&gt;didn&amp;rsquo;t&lt;/em&gt; arouse our interests.  That&amp;rsquo;s just&#xA;an extension of its rational counterpart due to some arithmetic properties of&#xA;limits.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Custom $\KaTeX$ Macros</title>
      <link>https://vincenttam.gitlab.io/post/2018-09-27-custom-katex-macros/</link>
      <pubDate>Thu, 27 Sep 2018 19:32:58 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-09-27-custom-katex-macros/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;Same as &lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-09-12-beautiful-hugo-improvements/&#34;&gt;the last section in &lt;em&gt;Beautiful Hugo Improvements&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;p&gt;To write math efficiently by automatically loading longer code with shorter&#xA;macro code.&lt;/p&gt;&#xA;&lt;p&gt;For example, when I wrote &lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-09-25-some-infinite-cardinality-identities/&#34;&gt;&lt;em&gt;Some Infinite Cardinality Identities&lt;/em&gt;&lt;/a&gt;, it&#xA;would be ten times more quicker and efficient to type &lt;code&gt;\card{C}&lt;/code&gt; than to write&#xA;&lt;code&gt;\mathop{\mathrm{card}}(C)&lt;/code&gt; all the time.&lt;/p&gt;&#xA;&lt;h3 id=&#34;changes-committed-to-my-i-classfab-fa-git-aria-hiddeni-repo&#34;&gt;Changes committed to my &lt;i class=&#34;fab fa-git&#34; aria-hidden&gt;&lt;/i&gt; repo&lt;/h3&gt;&#xA;&lt;p&gt;The current version of &lt;a href=&#34;https://github.com/halogenica/beautifulhugo&#34;&gt;Beautiful Hugo&lt;/a&gt; is still using $\KaTeX$ v0.7,&#xA;which &lt;em&gt;doesn&amp;rsquo;t&lt;/em&gt; support macros in auto-rendering.  It would be &lt;em&gt;inconvenient&lt;/em&gt; to&#xA;include the macros after invoking $\KaTeX$&amp;rsquo;s &lt;code&gt;render&lt;/code&gt; function.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Better Hugo ToC Fix</title>
      <link>https://vincenttam.gitlab.io/post/2018-09-27-better-hugo-toc-fix/</link>
      <pubDate>Thu, 27 Sep 2018 18:56:40 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-09-27-better-hugo-toc-fix/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;I applied &lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-09-17-fix-hugo-table-of-contents/&#34;&gt;a fix to Hugo&amp;rsquo;s ToC&lt;/a&gt; ten days ago.&lt;/p&gt;&#xA;&lt;h3 id=&#34;drawbacks&#34;&gt;Drawbacks&lt;/h3&gt;&#xA;&lt;p&gt;To make the script non-render blocking, one has to place it in the footer.&#xA;As a result, it takes about 0.2 seconds to remove the excess &lt;code&gt;&amp;lt;ul&amp;gt;&lt;/code&gt; tag.&lt;/p&gt;&#xA;&lt;h3 id=&#34;solution&#34;&gt;Solution&lt;/h3&gt;&#xA;&lt;p&gt;Thanks to &lt;a href=&#34;https://git.io/fAjiL&#34;&gt;Beej126&amp;rsquo;s Hugo template code&lt;/a&gt;, this site delivers table of&#xA;contents processed by &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt; during &lt;a href=&#34;https://gitlab.com/&#34;&gt;GitLab&lt;/a&gt;&amp;rsquo;s continuous deployment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Some Infinite Cardinality Identities</title>
      <link>https://vincenttam.gitlab.io/post/2018-09-25-some-infinite-cardinality-identities/</link>
      <pubDate>Tue, 25 Sep 2018 23:02:24 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-09-25-some-infinite-cardinality-identities/</guid>
      <description>&lt;h3 id=&#34;purpose&#34;&gt;Purpose&lt;/h3&gt;&#xA;&lt;p&gt;This post aims at recapturing the main ideas of the formal proofs that I&amp;rsquo;ve&#xA;read.  It &lt;em&gt;never&lt;/em&gt; tries to replace them.  You may consult the&#xA;references if you need any of them.&lt;/p&gt;&#xA;&lt;h3 id=&#34;some-notations&#34;&gt;Some notations&lt;/h3&gt;&#xA;&lt;p&gt;Unless otherwise specified, &lt;em&gt;all&lt;/em&gt; cardinalities here are &lt;em&gt;infinite&lt;/em&gt;.  Denote&#xA;$\mathfrak{a} = \card{A}$, $\mathfrak{b} = \card{B}$ and&#xA;$\mathfrak{i} = \card{I}$.&lt;/p&gt;&#xA;&lt;dl&gt;&#xA;&lt;dt&gt;Sum&lt;/dt&gt;&#xA;&lt;dd&gt;$\mathfrak{a} + \mathfrak{b} = \card{A \cup B}$ provided that&#xA;$A \cap B =\varnothing$.&lt;/dd&gt;&#xA;&lt;dt&gt;Product&lt;/dt&gt;&#xA;&lt;dd&gt;$\mathfrak{a} \, \mathfrak{b} = \card{A \times B}$&lt;/dd&gt;&#xA;&lt;dt&gt;Power&lt;/dt&gt;&#xA;&lt;dd&gt;$\mathfrak{a}^\mathfrak{i} = \card{A^I}$, where $A^I =&#xA;\lbrace f \mid f: I \to A \rbrace$ denotes the set of functions from $I$ to $A$.&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;p&gt;&#xA;I&#39;ve chosen $I$ instead of $B$ to express the index set because this reminds me&#xA;of an array of $(a_i)_i$ indexed by $I$.&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Install Julia From Source</title>
      <link>https://vincenttam.gitlab.io/post/2018-09-22-install-julia-from-source/</link>
      <pubDate>Sat, 22 Sep 2018 21:38:43 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-09-22-install-julia-from-source/</guid>
      <description>&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;p&gt;To get &lt;a href=&#34;https://julialang.org/&#34;&gt;Julia&lt;/a&gt; installed &lt;em&gt;as a normal user&lt;/em&gt; on &lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-09-20-my-first-rhel-experience/&#34;&gt;RHEL 6&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;motivation&#34;&gt;Motivation&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&amp;ldquo;&lt;a href=&#34;https://julialang.org/&#34;&gt;Julia&lt;/a&gt; talks like &lt;a href=&#34;https://www.python.org/&#34;&gt;Python&lt;/a&gt; but walks like &lt;a href=&#34;https://en.wikipedia.org/wiki/C_%28programming_language%29&#34;&gt;C&lt;/a&gt;.&amp;rdquo;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;To do statistics more efficiently.&lt;/p&gt;&#xA;&lt;p&gt;The compiled binaries often contain install scripts which put files to &lt;em&gt;shared&lt;/em&gt;&#xA;folders under &lt;code&gt;/usr&lt;/code&gt;.  Consequently, they have to be run as sudo privileges.&#xA;That drove me to start this lengthy Julia compilation.&lt;/p&gt;&#xA;&lt;h3 id=&#34;installation&#34;&gt;Installation&lt;/h3&gt;&#xA;&lt;p&gt;&lt;em&gt;Without sudo privileges&lt;/em&gt;, I&amp;rsquo;ve chosen to compile &lt;a href=&#34;https://julialang.org/&#34;&gt;Julia&lt;/a&gt; from &lt;a href=&#34;https://github.com/JuliaLang/julia&#34;&gt;source&lt;/a&gt;.&#xA;I was too &lt;em&gt;lazy&lt;/em&gt; to get &lt;a href=&#34;https://centos.pkgs.org/6/puias-computational-x86_64/julia037-0.3.7-2.sdl6.x86_64.rpm.html&#34;&gt;the dependencies&lt;/a&gt; fixed.  I just compiled it&#xA;&lt;em&gt;without&lt;/em&gt; &lt;a href=&#34;https://gcc.gnu.org/fortran/&#34;&gt;GFortran&lt;/a&gt; and &lt;a href=&#34;https://www.freedesktop.org/wiki/Software/pkg-config/&#34;&gt;pkg-config&lt;/a&gt; under the &lt;code&gt;~/src&lt;/code&gt; folder.&lt;/p&gt;</description>
    </item>
    <item>
      <title>My First RHEL Experience</title>
      <link>https://vincenttam.gitlab.io/post/2018-09-20-my-first-rhel-experience/</link>
      <pubDate>Thu, 20 Sep 2018 21:47:02 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-09-20-my-first-rhel-experience/</guid>
      <description>&lt;h3 id=&#34;introduction&#34;&gt;Introduction&lt;/h3&gt;&#xA;&lt;p&gt;This article records my errors and difficulties encountered on the first day I&#xA;came across Red Hat Enterprise Linux 7 in my school&amp;rsquo;s laboratory, as a&#xA;&lt;em&gt;normal user without sudo privileges&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The login screen was gdm, and the desktop environment was GNOME.  IBus was used&#xA;as the input engine.&lt;/p&gt;&#xA;&lt;h3 id=&#34;packages-installed&#34;&gt;Packages installed&lt;/h3&gt;&#xA;&lt;p&gt;The principal goal is to install tools that I usually use on RHEL &lt;em&gt;without&lt;/em&gt; sudo&#xA;permissions.  To do so, I&amp;rsquo;ve downloaded the executable binaries or source code&#xA;of these packages.  As I wanted to focus on my studies, I prefer downloading&#xA;executable binaries.&lt;/p&gt;</description>
    </item>
    <item>
      <title>$\pi$–$\lambda$ Theorem</title>
      <link>https://vincenttam.gitlab.io/post/2018-09-19-pi-lambda-theorem/</link>
      <pubDate>Wed, 19 Sep 2018 15:56:35 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-09-19-pi-lambda-theorem/</guid>
      <description>&lt;h3 id=&#34;statement&#34;&gt;Statement&lt;/h3&gt;&#xA;&lt;h4 id=&#34;slogan-version&#34;&gt;Slogan version&lt;/h4&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;$$\sigma = \pi + \lambda$$&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;$\sigma$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;$\pi$&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;$\lambda$&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&amp;ldquo;sum&amp;rdquo;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&amp;ldquo;product&amp;rdquo;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&amp;ldquo;limit&amp;rdquo;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;universe&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;nonempty&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;universe&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;complement&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;complement&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;countable union&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;finite intersection&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;strong&gt;disjoint&lt;/strong&gt; countable union&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;A $\sigma$-algebra is a $\pi$-system and a $\lambda$-system, and vice versa.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h4 id=&#34;wiki-version&#34;&gt;Wiki version&lt;/h4&gt;&#xA;&lt;p&gt;A $\lambda$-system is a synonym of a Dykin system.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;$$\mathcal{P} \subseteq \mathcal{D} \Longrightarrow \sigma(\mathcal{P})&#xA;\subseteq \mathcal{D}$$&lt;/p&gt;&#xA;&lt;p&gt;Given a $\pi$-system contained in a $\lambda$-system.  Then the&#xA;$\sigma$-algebra generated by the $\pi$-system is also contained in the&#xA;$\lambda$-system.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Staticman API Hosting 2018</title>
      <link>https://vincenttam.gitlab.io/post/2018-09-16-staticman-powered-gitlab-pages/2/</link>
      <pubDate>Mon, 17 Sep 2018 22:00:07 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-09-16-staticman-powered-gitlab-pages/2/</guid>
      <description>&lt;p&gt;Update: I suggest reading &lt;a href=&#34;https://github.com/pacollins/hugo-future-imperfect-slim/wiki/staticman.yml&#34;&gt;a newer tutorial&lt;/a&gt; for setting up your custom API&#xA;server that works with GitHub Apps.  The package maintainers suggest hosting&#xA;your own API server.&lt;/p&gt;&#xA;&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;p&gt;To host an instance of Staticman v3 server on Heroku.&lt;/p&gt;&#xA;&lt;p&gt;This post involves &lt;em&gt;server-side&lt;/em&gt; setup of the commenting system.  If you simply&#xA;want to have a taste of this system on GitLab, you may try&#xA;&lt;a href=&#34;https://vincenttam.gitlab.io/test-hugo-staticman/posts/test-staticman/&#34;&gt;my demo GitLab Page&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I try to address some concerns about this API service in the&#xA;&lt;a href=&#34;../0&#34;&gt;introduction of this series&lt;/a&gt; to keep this page focused on the &lt;em&gt;technical&lt;/em&gt;&#xA;aspects of &lt;a href=&#34;https://github.com/eduardoboucas/staticman/compare/55d14306d851059a2a27d24b5eb4cb17c5009477...VincentTam:deploy&#34;&gt;my customizations against &lt;code&gt;staticman/dev&lt;/code&gt; branch&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Copy File and Preserve Path</title>
      <link>https://vincenttam.gitlab.io/post/2018-09-17-copy-file-and-preserve-path/</link>
      <pubDate>Mon, 17 Sep 2018 12:39:09 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-09-17-copy-file-and-preserve-path/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;While making changes to a theme for a static site generator, I changed files&#xA;under a Git submodule included in the repo for my blog.  (e.g.&#xA;&lt;code&gt;themes/beautifulhugo&lt;/code&gt;)  That&amp;rsquo;s ideal for local testing, but not for version&#xA;control.  As a result, I cloned the repo for the theme to a directory &lt;em&gt;separate&lt;/em&gt;&#xA;from the one for my bloge (say, &lt;code&gt;~/beautifulhugo&lt;/code&gt;), and commit the changes&#xA;there, then performed a Git submodule update so as to make the workflow clean.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fix Hugo Table of Contents</title>
      <link>https://vincenttam.gitlab.io/post/2018-09-17-fix-hugo-table-of-contents/</link>
      <pubDate>Mon, 17 Sep 2018 12:31:03 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-09-17-fix-hugo-table-of-contents/</guid>
      <description>&lt;h3 id=&#34;background-tldr&#34;&gt;Background (TL;DR)&lt;/h3&gt;&#xA;&lt;p&gt;While setting up the &lt;em&gt;new&lt;/em&gt; version of &lt;a href=&#34;https://staticman.net&#34;&gt;Staticman&lt;/a&gt; for&#xA;&lt;a href=&#34;https://vincenttam.gitlab.io/test-hugo-staticman&#34;&gt;my demo GitLab pages&lt;/a&gt;, I&amp;rsquo;ve read &lt;a href=&#34;https://staticman.net/docs&#34;&gt;developers&amp;rsquo; documentations&lt;/a&gt;,&#xA;&lt;a href=&#34;https://github.com/eduardoboucas/staticman/pull/219#issuecomment-417857360&#34;&gt;setup guide&lt;/a&gt; and some &lt;em&gt;community&lt;/em&gt; blog posts so as to come up with&#xA;&lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-09-16-staticman-powered-gitlab-pages/1/&#34;&gt;my own guide&lt;/a&gt;.  It&amp;rsquo;s originated and inspired from a variety of sources,&#xA;and refined according to hours of testing.  Consequently, despite the original&#xA;intention to keep things simple, I&amp;rsquo;ve finally come up with a post with over a&#xA;thousand words.&lt;/p&gt;&#xA;&lt;p&gt;To pass my ideas in this post to visitors, it&amp;rsquo;s better that they have an&#xA;&lt;em&gt;overview&lt;/em&gt; of the contents before actually looking into the details.  Therefore,&#xA;a table of contents is nice-to-have feature for this blog.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Config GitLab Repo for Staticman</title>
      <link>https://vincenttam.gitlab.io/post/2018-09-16-staticman-powered-gitlab-pages/1/</link>
      <pubDate>Sun, 16 Sep 2018 19:12:15 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-09-16-staticman-powered-gitlab-pages/1/</guid>
      <description>&lt;p&gt;Update: I suggest reading &lt;a href=&#34;https://github.com/pacollins/hugo-future-imperfect-slim/wiki/staticman.yml&#34;&gt;a newer tutorial&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;To keep focused on the technical setup, please refer to&#xA;&lt;a href=&#34;../0/&#34;&gt;the introduction&lt;/a&gt; of this series for the reasons of choosing &lt;a href=&#34;https://staticman.net&#34;&gt;Staticman&lt;/a&gt;&#xA;and &lt;a href=&#34;https://gitlab.com&#34;&gt;GitLab&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;p&gt;To set up &lt;em&gt;unauthenticated&lt;/em&gt; commenting system on &lt;a href=&#34;https://about.gitlab.com/features/pages/&#34;&gt;GitLab pages&lt;/a&gt;.&lt;/p&gt;&#xA;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;https://vincenttam.gitlab.io/css/hugo-easy-gallery.css&#34; /&gt;&#xA;&lt;div class=&#34;box&#34; &gt;&#xA;  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;&#xA;    &lt;div class=&#34;img&#34;&gt;&#xA;      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;../goal800.png&#34; alt=&#34;GitLab Page with Staticman&#34;/&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;a href=&#34;../goal.png&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;&#xA;      &lt;figcaption&gt;&lt;h4&gt;Demo GitLab Page with Staticman v3&lt;/h4&gt;&#xA;          &lt;p&gt;Built on 14/09/2018&lt;/p&gt;&#xA;      &lt;/figcaption&gt;&#xA;  &lt;/figure&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;This post aims at providing a walkthrough to the GitLab repo setup.  If you want to host your own Staticman API instance, you may refer to the&#xA;&lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-09-16-staticman-powered-gitlab-pages/2/&#34;&gt;next post in this series&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Welcome to static comments</title>
      <link>https://vincenttam.gitlab.io/post/2018-09-16-staticman-powered-gitlab-pages/0/</link>
      <pubDate>Sun, 16 Sep 2018 19:12:15 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-09-16-staticman-powered-gitlab-pages/0/</guid>
      <description>&lt;p&gt;I put some &amp;ldquo;why&amp;rdquo; questions here so as to keep focus on the technical setup of&#xA;the GitLab repo and the optional Staticman API server.&lt;/p&gt;&#xA;&lt;h3 id=&#34;why-static-blogs-instead-of-dynamic-ones&#34;&gt;Why static blogs instead of dynamic ones?&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;quicker loading time&lt;/li&gt;&#xA;&lt;li&gt;better reliability (can handle more request)&lt;/li&gt;&#xA;&lt;li&gt;no database needed&lt;/li&gt;&#xA;&lt;li&gt;greater control on content, styles and layout&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;why-static-comments&#34;&gt;Why static comments?&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;allow feedback from visitors&lt;/li&gt;&#xA;&lt;li&gt;site owner &lt;em&gt;owns&lt;/em&gt; the comment locally (unlike WordPress, Facebook, Disqus, etc)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;no remote database needed, so no need to worry server errors from&#xA;third-party commenting services.&lt;/li&gt;&#xA;&lt;li&gt;greater control over the &lt;em&gt;rendering&lt;/em&gt; of the comments (allow additional&#xA;features such as Markdown syntax, and $\KaTeX$  support)&lt;/li&gt;&#xA;&lt;li&gt;more accessible since static comments are &lt;em&gt;incorporated&lt;/em&gt; as HTML elements&#xA;into the post.  &lt;em&gt;No&lt;/em&gt; JavaScript is required to retrieve the comments,&#xA;contrary to most third-party commenting services.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Before &lt;a href=&#34;https://staticman.net/&#34;&gt;Staticman&lt;/a&gt;&amp;rsquo;s deployment, another commenting system called &lt;a href=&#34;https://blogduyax.madyanne.fr/2017/un-blog-plus-statique/&#34;&gt;Pecosys&lt;/a&gt; was&#xA;already available.  However, it&amp;rsquo;s less convenient to handle visitor&amp;rsquo;s requests&#xA;as emails.&lt;/p&gt;</description>
    </item>
    <item>
      <title>PDF Form Printing Error</title>
      <link>https://vincenttam.gitlab.io/post/2018-09-16-pdf-form-printing-error/</link>
      <pubDate>Sun, 16 Sep 2018 01:57:12 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-09-16-pdf-form-printing-error/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;https://vincenttam.gitlab.io/css/hugo-easy-gallery.css&#34; /&gt;&#xA;&lt;div class=&#34;box&#34; &gt;&#xA;  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;&#xA;    &lt;div class=&#34;img&#34;&gt;&#xA;      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://vincenttam.gitlab.io/post/2018-07-23-fujitsu-lh532-keyboard-cleaning/marais-small.jpg&#34; alt=&#34;Le Temple du Marais&#34;/&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-07-23-fujitsu-lh532-keyboard-cleaning/20180711_215200.jpg&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;&#xA;      &lt;figcaption&gt;&lt;h4&gt;Le Temple du Marais&lt;/h4&gt;&#xA;          &lt;p&gt;&amp;#34;Eglise verte&amp;#34; means &amp;#34;green church&amp;#34;.&lt;/p&gt;&#xA;      &lt;/figcaption&gt;&#xA;  &lt;/figure&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;My churches are going &lt;span class=&#34;green&#34;&gt;green&lt;/span&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;&lt;i class=&#34;fas fa-download fa-fw&#34; aria-hidden&gt;&lt;/i&gt;&#xA;&lt;i class=&#34;far fa-file-pdf fa-fw&#34; aria-hidden&gt;&lt;/i&gt;&#xA;&lt;i class=&#34;far fa-save fa-fw&#34; aria-hidden&gt;&lt;/i&gt; →&#xA;&lt;i class=&#34;fab fa-usb fa-fw&#34; aria-hidden&gt;&lt;/i&gt;&#xA;&lt;i class=&#34;fas fa-print fa-fw&#34; aria-hidden&gt;&lt;/i&gt;&#xA;I downloaded &lt;a href=&#34;https://web.archive.org/web/20180517065538/http://www.haute-garonne.gouv.fr/content/download/25422/176183/file/FormulaireEtudiantsEtrangers.pdf&#34;&gt;a PDF&lt;/a&gt; from Haute-Garonne&amp;rsquo;s government site, filled in&#xA;the form and saved it on a USB key. Then I printed it at a Konica Minolta bizhub&#xA;photocopier &lt;time datetime=&#34;2018-09-15 17:00&#34;&gt;yesterday&lt;/time&gt;.&lt;/p&gt;&#xA;&lt;span class=&#34;fa-stack fa-2x fa-pull-left&#34;&gt;&#xA;  &lt;i class=&#34;fas fa-language fa-stack-1x&#34;&gt;&lt;/i&gt;&#xA;  &lt;i class=&#34;fas fa-ban fa-stack-2x red&#34;&gt;&lt;/i&gt;&#xA;&lt;/span&gt;&#xA;However, _only_ the radio buttons &lt;input type=&#34;radio&#34;&gt; and checkboxes&#xA;&lt;input type=&#34;checkbox&#34;&gt; were printed.  The blanks &lt;input type=&#34;text&#34; readonly&gt;&#xA;were left _blank_!  I opened my PDF and double-checked that I had input the text&#xA;in &lt;input type=&#34;text&#34; value=&#34;all text fields&#34; readonly&gt;.&#xA;&#xA;&#xA;&lt;div class=&#34;box&#34; &gt;&#xA;  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;&#xA;    &lt;div class=&#34;img&#34;&gt;&#xA;      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;prerr-s.jpg&#34; alt=&#34;PDF file printed&#34;/&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;a href=&#34;prerr.jpg&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;&#xA;      &lt;figcaption&gt;&lt;h4&gt;Printed output&lt;/h4&gt;&#xA;          &lt;p&gt;Printed by a Konica Monilta bizhub photocopier&lt;/p&gt;</description>
    </item>
    <item>
      <title>Flying Grizzly&#39;s HTML Form Submission Error</title>
      <link>https://vincenttam.gitlab.io/post/2018-09-15-flying-grizzly-s-html-form-submission-error/</link>
      <pubDate>Sat, 15 Sep 2018 23:09:06 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-09-15-flying-grizzly-s-html-form-submission-error/</guid>
      <description>&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;I would like to submit &lt;a href=&#34;https://www.flyinggrizzly.net/2017/12/setting-up-staticman-server/&#34;&gt;Flying Grizzly&amp;rsquo;s form&lt;/a&gt;.  I filled in &lt;em&gt;every&lt;/em&gt;&#xA;blanks and then I clicked the &amp;ldquo;submit&amp;rdquo; button below.  I was greeted with a&#xA;&lt;code&gt;MISSING_REQUIRED_FIELDS&lt;/code&gt; error within a second.&lt;/p&gt;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;gallery caption-position-bottom caption-effect-slide hover-effect-zoom hover-transition&#34; itemscope itemtype=&#34;http://schema.org/ImageGallery&#34;&gt;&#xA;    &#xA;  &#xA;  &lt;link rel=&#34;stylesheet&#34; href=&#34;https://vincenttam.gitlab.io/css/hugo-easy-gallery.css&#34; /&gt;&#xA;  &lt;div class=&#34;box&#34; &gt;&#xA;    &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;&#xA;      &lt;div class=&#34;img&#34; style=&#34;background-image: url(&#39;https://vincenttam.gitlab.io/comment-s.png&#39;);&#34;&gt;&#xA;        &lt;img itemprop=&#34;thumbnail&#34; src=&#34;comment-s.png&#34; alt=&#34;comment form&#34;/&gt;&#xA;      &lt;/div&gt;&#xA;      &lt;a href=&#34;comment.png&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;&#xA;        &lt;figcaption&gt;&lt;h4&gt;HTML form&lt;/h4&gt;&#xA;            &lt;p&gt;every entry filled in&lt;/p&gt;&#xA;        &lt;/figcaption&gt;&#xA;    &lt;/figure&gt;&#xA;  &lt;/div&gt;&#xA;&#xA;  &#xA;  &#xA;  &lt;div class=&#34;box&#34; &gt;&#xA;    &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;&#xA;      &lt;div class=&#34;img&#34; style=&#34;background-image: url(&#39;https://vincenttam.gitlab.io/response-s.png&#39;);&#34;&gt;&#xA;        &lt;img itemprop=&#34;thumbnail&#34; src=&#34;response-s.png&#34; alt=&#34;html server error&#34;/&gt;&#xA;      &lt;/div&gt;&#xA;      &lt;a href=&#34;response-s.png&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;&#xA;        &lt;figcaption&gt;&lt;h4&gt;Staticman v2 server response&lt;/h4&gt;&#xA;            &lt;p&gt;500 internal server error&lt;/p&gt;&#xA;        &lt;/figcaption&gt;&#xA;    &lt;/figure&gt;&#xA;  &lt;/div&gt;&#xA;&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;success&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;data&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;replying_to&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;rawError&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;_smErrorCode&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;MISSING_REQUIRED_FIELDS&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;data&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;replying_to&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;errorCode&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;MISSING_REQUIRED_FIELDS&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;h3 id=&#34;discussion&#34;&gt;Discussion&lt;/h3&gt;&#xA;&lt;p&gt;The error code suggested that the form fields sent should be inspected.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Beautiful Hugo Improvements</title>
      <link>https://vincenttam.gitlab.io/post/2018-09-12-beautiful-hugo-improvements/</link>
      <pubDate>Wed, 12 Sep 2018 09:17:39 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-09-12-beautiful-hugo-improvements/</guid>
      <description>&lt;h3 id=&#34;fixed-issue-142&#34;&gt;Fixed issue #142&lt;/h3&gt;&#xA;&lt;p&gt;Two weeks ago, &lt;a href=&#34;https://www.google.com/webmasters/&#34;&gt;Google Webmasters&lt;/a&gt; complained about the broken urls in this&#xA;blog&amp;rsquo;s &lt;a href=&#34;https://vincenttam.gitlab.io/tags&#34;&gt;Tags&lt;/a&gt; page.  This was reported by Joakim Vivas as&#xA;&lt;a href=&#34;https://github.com/halogenica/beautifulhugo/issues/142&#34;&gt;issue #142&lt;/a&gt; half a year ago.  Pascal had submitted&#xA;&lt;a href=&#34;https://github.com/halogenica/beautifulhugo/pull/165&#34;&gt;pull request #165&lt;/a&gt; to fix this.  However, he &lt;em&gt;self-closed&lt;/em&gt; his PR.&lt;/p&gt;&#xA;&lt;p&gt;Since the last commit by Michael Romero, &lt;a href=&#34;https://github.com/halogenica/beautifulhugo&#34;&gt;Beautiful Hugo&lt;/a&gt;&amp;rsquo;s owner, was&#xA;&lt;em&gt;five&lt;/em&gt; months ago, it seems that he has &lt;em&gt;abandonned&lt;/em&gt; his project.  Therefore, I&#xA;used &lt;a href=&#34;https://github.com/halogenica/beautifulhugo/issues/142#issuecomment-373466084&#34;&gt;Kaushal Modi&amp;rsquo;s solution&lt;/a&gt; to fix this at commit &lt;a href=&#34;https://gitlab.com/vincenttam/vincenttam.gitlab.io/tree/ff536782fecaa641949eeecae76816393a3aae11&#34;&gt;ff536782&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CJK on Ubuntu 18.04</title>
      <link>https://vincenttam.gitlab.io/post/2018-09-09-cjk-on-ubuntu-18-04/</link>
      <pubDate>Sun, 09 Sep 2018 00:33:53 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-09-09-cjk-on-ubuntu-18-04/</guid>
      <description>&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;p&gt;To enable Chinese and Japanese input on &lt;a href=&#34;https://releases.ubuntu.com/18.04/&#34;&gt;(X)ubuntu 18.04&lt;/a&gt; laptops&#xA;&lt;i class=&#34;fas fa-laptop&#34; aria-hidden&gt;&lt;/i&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;my-choices-of-input-method&#34;&gt;My choices of input method&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;&lt;i class=&#34;fas fa-laptop&#34; aria-hidden&gt;&lt;/i&gt;&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;old&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;new&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;OS&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Xubuntu 18.04&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Ubuntu 18.04&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Desktop Environment&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://xfce.org/&#34;&gt;Xfce&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://www.gnome.org/&#34;&gt;GNOME&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Input method&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://fcitx-im.org/wiki/Fcitx&#34;&gt;Fcitx&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://github.com/ibus/ibus/wiki&#34;&gt;IBus&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt; &lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Language&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Method&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;中文&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://rime.im&#34;&gt;Rime&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;日本語&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://github.com/google/mozc&#34;&gt;Mozc&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;On my old Fujitsu laptop running Xubuntu, I&amp;rsquo;ve chosen &lt;a href=&#34;https://fcitx-im.org/wiki/Fcitx&#34;&gt;Fcitx&lt;/a&gt;.  This turns out&#xA;to be a &lt;em&gt;difficult&lt;/em&gt; choice when I install &lt;a href=&#34;https://rime.im&#34;&gt;Rime&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;japanese-input&#34;&gt;Japanese input&lt;/h3&gt;&#xA;&lt;p&gt;Thanks to &lt;a href=&#34;https://sites.google.com/site/hymd3a/linux/ibus-mozc-shortcut&#34;&gt;ひゃまだ&lt;/a&gt;, I&amp;rsquo;ve managed to switch between difference modes in&#xA;&lt;a href=&#34;https://github.com/google/mozc&#34;&gt;Mozc&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Zsh and NPM Setup on Ubuntu</title>
      <link>https://vincenttam.gitlab.io/post/2018-09-06-zsh-and-npm-setup-on-ubuntu/</link>
      <pubDate>Thu, 06 Sep 2018 13:00:53 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-09-06-zsh-and-npm-setup-on-ubuntu/</guid>
      <description>&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;After installing NPM throught Ubuntu&amp;rsquo;s default &lt;code&gt;apt-get&lt;/code&gt; manager, I got&#xA;&lt;a href=&#34;https://stackoverflow.com/q/16151018/3184351&#34;&gt;permission errors&lt;/a&gt;.  Though &lt;code&gt;sudo&lt;/code&gt; can solve the problem, that&amp;rsquo;s &lt;em&gt;not&lt;/em&gt;&#xA;the right way in principle because NPM is supposed to hold different versions of&#xA;Node.js packages for testing.  It&amp;rsquo;s &lt;em&gt;insecure&lt;/em&gt; to execute &lt;code&gt;npm&lt;/code&gt; with &lt;code&gt;sudo&lt;/code&gt;&#xA;priviledges.&lt;/p&gt;&#xA;&lt;h3 id=&#34;solutions&#34;&gt;Solutions&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Install Zsh to improve efficiency&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Grab &lt;a href=&#34;https://github.com/robbyrussell/oh-my-zsh&#34;&gt;Oh My Zsh&lt;/a&gt; to instal NVM as its plugin.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt; sh -c &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)&amp;quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Use NVM (NPM Version Manager) to manage NPM.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Towards Better File Management</title>
      <link>https://vincenttam.gitlab.io/post/2018-09-06-towards-better-file-management/</link>
      <pubDate>Thu, 06 Sep 2018 11:05:53 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-09-06-towards-better-file-management/</guid>
      <description>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://vincenttam.gitlab.io/css/hugo-easy-gallery.css&#34; /&gt;&#xA;&lt;div class=&#34;box&#34; &gt;&#xA;  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;&#xA;    &lt;div class=&#34;img&#34;&gt;&#xA;      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://vincenttam.gitlab.io/post/2018-07-23-fujitsu-lh532-keyboard-cleaning/marais-small.jpg&#34; alt=&#34;Le Temple du Marais&#34;/&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-07-23-fujitsu-lh532-keyboard-cleaning/20180711_215200.jpg&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;&#xA;      &lt;figcaption&gt;&lt;h4&gt;Le Temple du Marais&lt;/h4&gt;&#xA;          &lt;p&gt;&amp;#34;Eglise verte&amp;#34; means &amp;#34;green church&amp;#34;.&lt;/p&gt;&#xA;      &lt;/figcaption&gt;&#xA;  &lt;/figure&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h3 id=&#34;background----&#34;&gt;Background: 🈶 ⛪ → 🌿&lt;/h3&gt;&#xA;&lt;p&gt;&lt;i class=&#34;far fa-envelope&#34; aria-hidden&gt;&lt;/i&gt; → 📧 In the recent decade,&#xA;organizations are replacing courrier with email.  The reason is two-folded.  🌿&#xA;First, the later is more environmentally-friendly.  📨 Second, the later delivers&#xA;the content to the recipient quick as a flash.&lt;/p&gt;&#xA;&lt;p&gt;📧 📎 &lt;i class=&#34;fas fa-file-signature&#34; aria-hidden&gt;&lt;/i&gt; When one sends an email,&#xA;one sometimes wants to attach a file to an email.  If one has to sign a paper&#xA;document and send it by email, then one will probably need a scanner.  (Despite&#xA;the emergence of scanning apps on mobile devices, the quality of a scanner is&#xA;normally better since the page is flattened during the scan.)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Laptop Battery Life</title>
      <link>https://vincenttam.gitlab.io/post/2018-09-05-laptop-battery-life/</link>
      <pubDate>Wed, 05 Sep 2018 23:13:45 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-09-05-laptop-battery-life/</guid>
      <description>&lt;h3 id=&#34;i-classfar-fa-lightbulb-aria-hiddeni-main-ideas&#34;&gt;&lt;i class=&#34;far fa-lightbulb&#34; aria-hidden&gt;&lt;/i&gt; Main ideas&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;i class=&#34;far fa-thumbs-up&#34; aria-hidden&gt;&lt;/i&gt;&#xA;&lt;i class=&#34;fas fa-bolt&#34; aria-hidden&gt;&lt;/i&gt;&#xA;&lt;i class=&#34;fas fa-store-alt&#34; aria-hidden&gt;&lt;/i&gt;&#xA;&lt;i class=&#34;fas fa-battery-quarter&#34; aria-hidden&gt;&lt;/i&gt; &amp;ndash;&#xA;&lt;i class=&#34;fas fa-battery-three-quarters&#34; aria-hidden&gt;&lt;/i&gt;&#xA;Ideal energy range for storage: 40%&amp;ndash;80%&lt;/li&gt;&#xA;&lt;li&gt;The biggest enemy of electronic parts&#xA;&lt;i class=&#34;fas fa-laptop&#34; aria-hidden&gt;&lt;/i&gt;&#xA;&lt;i class=&#34;fas fa-cogs&#34; aria-hidden&gt;&lt;/i&gt; is &lt;em&gt;heat&lt;/em&gt;&#xA;&lt;i class=&#34;fas fa-fire&#34; aria-hidden&gt;&lt;/i&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Avoid overchanging and unplug AC adapter when charging is complete.  In&#xA;particular, &lt;em&gt;don&amp;rsquo;t&lt;/em&gt; leave a fully charged laptop connected to power supply.&#xA;This can reduce the lifespan of the battery.&lt;/li&gt;&#xA;&lt;li&gt;Avoid &lt;em&gt;deep discharges&lt;/em&gt;: recharge the laptop battery when its enery level&#xA;drops to 40%.&lt;/li&gt;&#xA;&lt;li&gt;Reduce unnecessary programs running in background.&lt;/li&gt;&#xA;&lt;li&gt;If your hardware vendor supports Linux drivers for batteries, set the charging&#xA;thershold to 80%.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Some &lt;a href=&#34;https://www.lenovo.com/us/en/laptops/thinkpad/thinkpad-x/ThinkPad-X1-Carbon-5th-Gen/p/22TP2TXX15G&#34;&gt;Lenovo Thinkpads&lt;/a&gt; can benefit from those drivers.&lt;/li&gt;&#xA;&lt;li&gt;Other vendors like &lt;a href=&#34;https://www.fujitsu.com/&#34;&gt;Fujitsu&lt;/a&gt; offers such drives for M$ Windows&#xA;&lt;i class=&#34;fab fa-windows&#34; aria-hidden&gt;&lt;/i&gt; only.&#xA;&lt;i class=&#34;far fa-frown-open&#34; aria-hidden&gt;&lt;/i&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;i-classfas-fa-link-aria-hiddeni-external-urls&#34;&gt;&lt;i class=&#34;fas fa-link&#34; aria-hidden&gt;&lt;/i&gt; External URLs&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://lifehacker.com/5875162/how-often-should-i-charge-my-gadgets-battery-to-prolong-its-lifespan&#34;&gt;Life Hacker&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.omgubuntu.co.uk/2013/12/check-battery-life-health-ubuntu-linux&#34;&gt;Omg! Ubuntu!&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;</description>
    </item>
    <item>
      <title>Sublime Text 3</title>
      <link>https://vincenttam.gitlab.io/page/sublime/</link>
      <pubDate>Wed, 05 Sep 2018 20:52:51 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/page/sublime/</guid>
      <description>&lt;h3 id=&#34;i-classfar-fa-keyboard-fa-fw-aria-hiddeni-usual-keys&#34;&gt;&lt;i class=&#34;far fa-keyboard fa-fw&#34; aria-hidden&gt;&lt;/i&gt; Usual keys&lt;/h3&gt;&#xA;&lt;p&gt;I&amp;rsquo;ll only list those I find useful.  See&#xA;&lt;a href=&#34;https://docs.sublimetext.info/en/latest/reference/keyboard_shortcuts_win.html&#34;&gt;&lt;em&gt;Sublime Text Unofficial Documentation&lt;/em&gt;&amp;rsquo;s list&lt;/a&gt; for a more&#xA;comprehensive list.&lt;/p&gt;&#xA;&lt;h4 id=&#34;i-classfas-fa-arrows-alt-fa-fw-aria-hiddeni-navigation&#34;&gt;&lt;i class=&#34;fas fa-arrows-alt fa-fw&#34; aria-hidden&gt;&lt;/i&gt; Navigation&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;lt;C-Up&amp;gt;&lt;/code&gt; / &lt;code&gt;&amp;lt;C-Down&amp;gt;&lt;/code&gt;: move up ↑ / down ↓ &lt;em&gt;without&lt;/em&gt; changing&#xA;&lt;i class=&#34;fas fa-i-cursor&#34; aria-hidden&gt;&lt;/i&gt; cursor position.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;lt;C-g&amp;gt;&lt;/code&gt;: go to line number&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;lt;C-p&amp;gt;&lt;/code&gt;: go to other files&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;lt;C-S-p&amp;gt;&lt;/code&gt;: show &lt;a href=&#34;https://docs.sublimetext.info/en/latest/extensibility/command_palette.html&#34;&gt;Command Palette&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;i-classfas-fa-search-fa-fw-aria-hiddeni-searching--replacing&#34;&gt;&lt;i class=&#34;fas fa-search fa-fw&#34; aria-hidden&gt;&lt;/i&gt; Searching / Replacing&lt;/h4&gt;&#xA;&lt;p&gt;As usual, it supports custom selection range and regular expressions as&#xA;expected.  Transformations preserving cases are possible.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Missing Newline at EOL</title>
      <link>https://vincenttam.gitlab.io/post/2018-09-05-missing-newline-at-eol/</link>
      <pubDate>Wed, 05 Sep 2018 00:31:02 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-09-05-missing-newline-at-eol/</guid>
      <description>&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;Despite my experience in &lt;a href=&#34;https://www.vim.org&#34;&gt;Vim&lt;/a&gt;, the multi-cursor functionality in&#xA;&lt;a href=&#34;https://www.sublimetext.com/3&#34;&gt;Sublime Text 3&lt;/a&gt; has seduced my to change my editor.&lt;/p&gt;&#xA;&lt;p&gt;Unlike &lt;a href=&#34;https://www.vim.org&#34;&gt;Vim&lt;/a&gt;, a nonempty new line at the end of &lt;a href=&#34;https://www.sublimetext.com/3&#34;&gt;Sublime Text 3&lt;/a&gt;&#xA;file buffer causes the file to end &lt;em&gt;without&lt;/em&gt; a newline character.  In fact,&#xA;it&amp;rsquo;s a &lt;em&gt;POSIX standard&lt;/em&gt; to include a newline character at the EOL (end of&#xA;file).  (c.f. &lt;a href=&#34;https://robots.thoughtbot.com/no-newline-at-end-of-file&#34;&gt;No Newline at End of File&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;&lt;em&gt;Unaware&lt;/em&gt; of the above POSIX standard and &lt;a href=&#34;https://www.sublimetext.com/3&#34;&gt;Sublime Text 3&lt;/a&gt; convention,&#xA;I have edited many lines of code in the repository for this blog and the one for&#xA;my custom &lt;a href=&#34;https://github.com/halogenica/beautifulhugo&#34;&gt;Beautiful Hugo&lt;/a&gt;.  These edited files &lt;span class=&#34;fa-stack&#34;&gt;&lt;i&#xA;class=&#34;far fa-file fa-stack-2x fa-flip-horizontal&#34; aria-hidden&gt;&lt;/i&gt;&lt;i class=&#34;fas&#xA;fa-pencil-alt fa-stack-1x&#34; aria-hidden&gt;&lt;/i&gt;&lt;/span&gt; were &lt;em&gt;almost everywhere&lt;/em&gt; in&#xA;these repositories, and they &lt;em&gt;polluted&lt;/em&gt; their remote counterparts on GitLab &lt;i&#xA;class=&#34;fab fa-gitlab&#34; aria-hidden&gt;&lt;/i&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CSB Theorem</title>
      <link>https://vincenttam.gitlab.io/post/2018-08-29-csb-theorem/</link>
      <pubDate>Wed, 29 Aug 2018 11:25:24 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-08-29-csb-theorem/</guid>
      <description>&lt;p&gt;&lt;i class=&#34;fa fa-info-circle&#34; aria-hidden&gt;&lt;/i&gt; This &lt;em&gt;isn&amp;rsquo;t&lt;/em&gt; a substitute for&#xA;books &lt;i class=&#34;fa fa-book&#34; aria-hidden&gt;&lt;/i&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;reminder&#34;&gt;Reminder&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;$A \preceq B$: $A$ can be &amp;ldquo;&lt;em&gt;injected&lt;/em&gt;&amp;rdquo; into $B$.&lt;/li&gt;&#xA;&lt;li&gt;$A \sim B$: $A$ and $B$ share the &lt;em&gt;same cardinality&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;li&gt;$A \prec B$: $A$ can be &amp;ldquo;&lt;em&gt;injected&lt;/em&gt;&amp;rdquo; into $B$, but it&amp;rsquo;s &amp;ldquo;&lt;em&gt;smaller&lt;/em&gt;&amp;rdquo; than $B$.&lt;/li&gt;&#xA;&lt;li&gt;A &lt;strong&gt;finite&lt;/strong&gt; set can be &amp;ldquo;&lt;em&gt;counted&lt;/em&gt;&amp;rdquo; from one to some nonnegative integer.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Infinite&lt;/strong&gt; is the &amp;ldquo;&lt;em&gt;antonym&lt;/em&gt;&amp;rdquo; of finite.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;wolfs-proof&#34;&gt;Wolf&amp;rsquo;s proof&lt;/h3&gt;&#xA;&lt;p&gt;When I first saw this proof in Robert S. Wolf&amp;rsquo;s&#xA;&lt;a href=&#34;http://www.columbia.edu/~vml2113/Teachers%20College,%20Columbia%20University/Academic%20Year%202011-2012/Spring%202012/MSTM%206051%20-%20Advanced%20Topics%20in%20Nature%20of%20Proofs/Proof,%20Logic,%20and%20Conjecture%20-%20The%20Mathematician%27s%20Toolbox.pdf&#34;&gt;&lt;em&gt;Proof, Logic and Conjecture: The Mathematician&amp;rsquo;s Toolbox&lt;/em&gt;&lt;/a&gt;, I gave it up&#xA;since it &lt;em&gt;wasn&amp;rsquo;t&lt;/em&gt; as intuitive as the statement.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bash Commands</title>
      <link>https://vincenttam.gitlab.io/page/bash-commands/</link>
      <pubDate>Tue, 28 Aug 2018 17:18:27 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/page/bash-commands/</guid>
      <description>&lt;p&gt;This is a page for my personal reference.  &lt;a href=&#34;https://tldr.sh/&#34;&gt;TLDR pages&lt;/a&gt; has a more&#xA;comprehensive command collection.&lt;/p&gt;&#xA;&lt;h3 id=&#34;background-settings&#34;&gt;Background settings&lt;/h3&gt;&#xA;&lt;p&gt;Take the local &lt;i class=&#34;fab fa-git&#34; aria-hidden&gt;&lt;/i&gt; repo of this blog as an&#xA;example.&lt;/p&gt;&#xA;&lt;p&gt;Show current path.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ pwd&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/home/vin100/quickstart&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Distinguish files &lt;i class=&#34;far fa-file&#34; aria-hidden&gt;&lt;/i&gt; from folders &lt;i&#xA;class=&#34;far fa-folder&#34; aria-hidden&gt;&lt;/i&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ls -l&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;total 28&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;drwxrwxr-x 2 vin100 vin100 4096 Jun 28 21:00 archetypes&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-rw-rw-r-- 1 vin100 vin100 2734 Aug 28 17:30 config.toml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;drwxrwxr-x 4 vin100 vin100 4096 Jun 29 00:47 content&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;drwxrwxr-x 3 vin100 vin100 4096 Aug 25 15:29 layouts&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;drwxrwxr-x 9 vin100 vin100 4096 Jun 29 00:47 public&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;drwxrwxr-x 4 vin100 vin100 4096 Aug 25 13:36 static&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;drwxrwxr-x 3 vin100 vin100 4096 Aug 27 18:06 themes&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;apg&#34;&gt;apg&lt;/h3&gt;&#xA;&lt;p&gt;&lt;strong&gt;A&lt;/strong&gt;vanced &lt;strong&gt;p&lt;/strong&gt;assword &lt;strong&gt;g&lt;/strong&gt;enerator.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Brighten Image With GIMP</title>
      <link>https://vincenttam.gitlab.io/post/2018-08-23-brighten-image-with-gimp/</link>
      <pubDate>Thu, 23 Aug 2018 13:36:44 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-08-23-brighten-image-with-gimp/</guid>
      <description>&lt;h3 id=&#34;motivation&#34;&gt;Motivation&lt;/h3&gt;&#xA;&lt;p&gt;One loves adding colors to his/her life by adding stunning photos to his/her&#xA;social media profile.  However, due to various constraints, such as weather,&#xA;budget and time, it&amp;rsquo;s possible that the photos taken look dark and somber.&lt;/p&gt;&#xA;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;https://vincenttam.gitlab.io/css/hugo-easy-gallery.css&#34; /&gt;&#xA;&lt;div class=&#34;box&#34; &gt;&#xA;  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;&#xA;    &lt;div class=&#34;img&#34;&gt;&#xA;      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;st-martine.jpg&#34; alt=&#34;Eglise St Martine à Pont-du-Château&#34;/&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;a href=&#34;st-martine.jpg&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;&#xA;      &lt;figcaption&gt;&lt;h4&gt;Eglise St Martine&lt;/h4&gt;&#xA;          &lt;p&gt;Photo taken at Pont-du-Château, Puy-de-Dôme (63) on 30th June, 2017&lt;/p&gt;&#xA;      &lt;/figcaption&gt;&#xA;  &lt;/figure&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Despite a suboptimal choice of camera angle, a right tool enables you to take&#xA;the best out of the photo.  Let&amp;rsquo;s go &lt;a href=&#34;https://www.gimp.org&#34;&gt;GIMP&lt;/a&gt;ing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ubuntu 18.04 Installation on Fujitsu AH557</title>
      <link>https://vincenttam.gitlab.io/post/2018-08-18-ubuntu-18-04-installation-on-fujitsu-ah557/</link>
      <pubDate>Sat, 18 Aug 2018 18:39:42 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-08-18-ubuntu-18-04-installation-on-fujitsu-ah557/</guid>
      <description>&lt;h3 id=&#34;objective&#34;&gt;Objective&lt;/h3&gt;&#xA;&lt;p&gt;To get a hands-on experience on Ubuntu installation on a UEFI hybrid system.&lt;/p&gt;&#xA;&lt;h3 id=&#34;devices&#34;&gt;Devices&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;120 GB SSD disk: &lt;code&gt;/dev/sda&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;1 TB HDD disk: &lt;code&gt;/dev/sdb&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;8 GB USB key: &lt;code&gt;/dev/sdc&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;stage-0-precautions&#34;&gt;Stage 0: precautions&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ensure that your machine &lt;i class=&#34;fa fa-laptop&#34; aria-hidden&gt;&lt;/i&gt; has enough&#xA;power.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Disable Secure Boot in M$ Windows&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Disable Quick Boot in boot menu&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;stage-1-make-your-live-usb-key&#34;&gt;Stage 1: Make your live USB key&lt;/h3&gt;&#xA;&lt;p&gt;I tried Xubuntu&amp;rsquo;s built-in disk writing tool to create a live &lt;i&#xA;class=&#34;fab fa-linux&#34; aria-hidden&gt;&lt;/i&gt; USB key from the &lt;a href=&#34;https://www.ubuntu.com/download/desktop&#34;&gt;official ISO file&lt;/a&gt;.&#xA;Like &lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-06-28-xubuntu-dualboot-on-fujitsu-lh532/&#34;&gt;my Xubuntu 18.04 installation&lt;/a&gt; on Fujitsu LH532 &lt;i class=&#34;fa fa-laptop&#34;&#xA;aria-hidden&gt;&lt;/i&gt;, the installer &lt;em&gt;crashed&lt;/em&gt; during the installation.  After&#xA;submitting the generated report to Launchpad, I found out that the cause for&#xA;this crash: the &lt;em&gt;integrity test for my live &lt;i class=&#34;fab fa-linux&#34; aria-hidden&gt;&#xA;&lt;/i&gt; USB key had failed&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>TLP Prevents Login on Ubuntu 18.04</title>
      <link>https://vincenttam.gitlab.io/post/2018-08-15-tlp-prevents-login-on-ubuntu-18-04/</link>
      <pubDate>Wed, 15 Aug 2018 11:12:59 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-08-15-tlp-prevents-login-on-ubuntu-18-04/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s FOSS&amp;rsquo;s &lt;a href=&#34;https://itsfoss.com/things-to-do-after-installing-ubuntu-18-04/&#34;&gt;after-installation guide&lt;/a&gt; #11 recommends &lt;a href=&#34;https://linrunner.de/en/tlp/tlp.html&#34;&gt;TLP&lt;/a&gt;.  However,&#xA;this package stopped my laptop from shutting down and logging in.  I resorted&#xA;to remove it through TTY.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Web Image Optimisation with GIMP</title>
      <link>https://vincenttam.gitlab.io/post/2018-07-26-web-image-optimisation-with-gimp/</link>
      <pubDate>Thu, 26 Jul 2018 10:52:48 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-07-26-web-image-optimisation-with-gimp/</guid>
      <description>&lt;h3 id=&#34;why-image-optimization&#34;&gt;Why image optimization?&lt;/h3&gt;&#xA;&lt;p&gt;To save loading &lt;i class=&#34;far fa-clock&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;my-old-way&#34;&gt;My old way&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.imagemagick.org/&#34;&gt;ImageMagick&lt;/a&gt; provides a great&#xA;&lt;span class=&#34;fa-stack&#34;&gt;&#xA;&lt;i class=&#34;fa fa-square fa-stack-2x&#34;&gt;&lt;/i&gt;&#xA;&lt;i class=&#34;fa fa-terminal fa-stack-1x fa-inverse&#34;&gt;&lt;/i&gt;&#xA;&lt;/span&gt;&#xA;CLI utility to &lt;code&gt;convert&lt;/code&gt; and compress images&#xA;for any purposes.  However, to &lt;code&gt;-crop&lt;/code&gt; images, I have to specify the numbers in&#xA;&lt;em&gt;pixels&lt;/em&gt;.  One certainly works much more efficiently with a &lt;em&gt;GUI&lt;/em&gt; tool.&lt;/p&gt;&#xA;&lt;h3 id=&#34;my-new-way&#34;&gt;My new way&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.gimp.org&#34;&gt;GIMP&lt;/a&gt; can do &lt;em&gt;anything&lt;/em&gt; that &lt;a href=&#34;https://www.adobe.com/Photoshop&#34;&gt;Adobe Photoshop&lt;/a&gt; can do, even&#xA;&lt;a href=&#34;https://templatetoaster.com/tutorials/gimp-save-for-web/&#34;&gt;saving images for web&lt;/a&gt;.  In the linked page to this powerful GIMP plugin&#xA;tutorial, the link for the GNU/Linux binary file is &lt;em&gt;broken&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fujitsu LH532 Keyboard Cleaning</title>
      <link>https://vincenttam.gitlab.io/post/2018-07-23-fujitsu-lh532-keyboard-cleaning/</link>
      <pubDate>Mon, 23 Jul 2018 15:43:01 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-07-23-fujitsu-lh532-keyboard-cleaning/</guid>
      <description>&lt;p&gt;&lt;i class=&#34;fa fa-exclamation-triangle&#34; aria-hidden&gt;&lt;/i&gt; 😖 &lt;i class=&#34;fa fa-images&#34;&#xA;aria-hidden&gt;&lt;/i&gt; @ 📃! This post contains &lt;em&gt;unpleasant images&lt;/em&gt;.  If you &lt;em&gt;don&amp;rsquo;t&lt;/em&gt;&#xA;wish to see them, please view this page with a &lt;em&gt;text browser&lt;/em&gt; or a &lt;em&gt;text mode&#xA;plugin&lt;/em&gt; of your browser.&lt;/p&gt;&#xA;&lt;h3 id=&#34;rationale&#34;&gt;Rationale&lt;/h3&gt;&#xA;&lt;h4 id=&#34;why&#34;&gt;Why?&lt;/h4&gt;&#xA;&lt;p&gt;My Fujitsu LH532 &lt;i class=&#34;fa fa-laptop&#34; aria-hidden&gt;&lt;/i&gt; has been serving me&#xA;well as my production machine for almost six years.&lt;/p&gt;&#xA;&lt;p&gt;The keyboard was quite &lt;em&gt;dirty&lt;/em&gt;: it&amp;rsquo;s full of hair and dandruff.  I had to clean&#xA;it for &lt;em&gt;personal hygiene&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rodéo</title>
      <link>https://vincenttam.gitlab.io/post/2018-07-17-rodeo/</link>
      <pubDate>Tue, 17 Jul 2018 11:40:17 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-07-17-rodeo/</guid>
      <description>&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;au sens propre: (comme en anglais)&lt;/p&gt;&#xA;&lt;p&gt;Un événement dans lequel un cavalier essaie de demeurer sur un cheval&#xA;avec deux jambes levées.&lt;/p&gt;&#xA;&#xA;    &lt;link rel=&#34;stylesheet&#34; href=&#34;https://vincenttam.gitlab.io/css/hugo-easy-gallery.css&#34; /&gt;&#xA;    &lt;div class=&#34;box&#34; &gt;&#xA;      &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;&#xA;        &lt;div class=&#34;img&#34;&gt;&#xA;          &lt;img itemprop=&#34;thumbnail&#34; src=&#34;rodeo-cheval.png&#34; alt=&#34;Texture, Silhouette, Rodeo, Horse, Jumper, Mane&#34;/&gt;&#xA;        &lt;/div&gt;&#xA;        &lt;a href=&#34;rodeo-cheval.png&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;&#xA;          &lt;figcaption&gt;&lt;h4&gt;Rodéo au sens propre&lt;/h4&gt;&#xA;              &lt;p&gt;Source: Pixabay&lt;/p&gt;&#xA;          &lt;/figcaption&gt;&#xA;      &lt;/figure&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;au sens figuré dans l&amp;rsquo;actualité&lt;/p&gt;&#xA;&lt;p&gt;Une façon dangereuse de conduite dont le conducteur lève la(les)&#xA;roule(s) antérieure(s).&lt;/p&gt;&#xA;&#xA;    &#xA;    &lt;div class=&#34;box&#34; &gt;&#xA;      &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;&#xA;        &lt;div class=&#34;img&#34;&gt;&#xA;          &lt;img itemprop=&#34;thumbnail&#34; src=&#34;rodeo-moto.png&#34; alt=&#34;Motorcycle, Rear, Road, Rider, Moto Motorcycle&#34;/&gt;&#xA;        &lt;/div&gt;&#xA;        &lt;a href=&#34;rodeo-moto.png&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;&#xA;          &lt;figcaption&gt;&lt;h4&gt;Rodéo au sens figuré&lt;/h4&gt;&#xA;              &lt;p&gt;Source: Pixabay&lt;/p&gt;&#xA;          &lt;/figcaption&gt;&#xA;      &lt;/figure&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Le dicto Collins a recordé &lt;a href=&#34;https://www.collinsdictionary.com/dictionary/french-english/rod%C3%A9o&#34;&gt;une utilisation très rare&lt;/a&gt; de ce mot.&#xA;Récemment, on l&amp;rsquo;utilise plus fréquemment en raison de la lutte contre&#xA;les rodéos sauvages.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hugo Image Path Refactoring</title>
      <link>https://vincenttam.gitlab.io/post/2018-07-14-hugo-image-path-refactoring/</link>
      <pubDate>Sat, 14 Jul 2018 14:18:28 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-07-14-hugo-image-path-refactoring/</guid>
      <description>&lt;h3 id=&#34;goal&#34;&gt;Goal&lt;/h3&gt;&#xA;&lt;p&gt;To set up a reasonable content structure for my blog.&lt;/p&gt;&#xA;&lt;h3 id=&#34;before-hugo&#34;&gt;Before Hugo&lt;/h3&gt;&#xA;&lt;p&gt;In &lt;a href=&#34;https://git.io/vtblog&#34;&gt;my old Octopress blog&lt;/a&gt;, &lt;a href=&#34;https://github.com/VincentTam/vincenttam.github.io/tree/source/source/images/posts&#34;&gt;images&lt;/a&gt; and &lt;a href=&#34;https://github.com/VincentTam/vincenttam.github.io/tree/source/source/_posts&#34;&gt;posts&lt;/a&gt; were placed&#xA;under &lt;code&gt;source/images/posts&lt;/code&gt; and &lt;code&gt;source/_posts&lt;/code&gt; folders respectively.&#xA;They were so &lt;em&gt;far&lt;/em&gt; apart that I needed to use copy and paste the URL&amp;rsquo;s&#xA;so as to get them right.  As the size of the blog grew, I could hardly&#xA;retrieve an image without first listing the files in the post image&#xA;folder.  This significantly &lt;em&gt;reduced the efficiency&lt;/em&gt; of blog writing.&#xA;In my hometown, people take efficiency seriously.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Combine PDF in Linux</title>
      <link>https://vincenttam.gitlab.io/post/2018-07-13-combine-pdf-in-linux/</link>
      <pubDate>Fri, 13 Jul 2018 17:30:54 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-07-13-combine-pdf-in-linux/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://manpages.ubuntu.com/manpages/trusty/man1/pdfunite.1.html&#34;&gt;pdfunite&lt;/a&gt; is fairly easy to use.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;pdfunite PDF-sourcefile1..PDF-sourcefilen PDF-destfile&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Another way is to use &lt;a href=&#34;https://qpdf.sourceforge.net/&#34;&gt;QPDF&lt;/a&gt;.  I&amp;rsquo;ve learnt to add &lt;code&gt;--empty&lt;/code&gt; from&#xA;&lt;a href=&#34;https://github.com/qpdf/qpdf/issues/11&#34;&gt;@qpdf/qpdf:#12&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;qpdf --empty --pages *.pdf -- out.pdf&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Brightness Key on Linux</title>
      <link>https://vincenttam.gitlab.io/post/2018-07-09-brightness-key-on-linux/</link>
      <pubDate>Mon, 09 Jul 2018 23:21:17 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-07-09-brightness-key-on-linux/</guid>
      <description>&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;One can use &lt;a href=&#34;https://askubuntu.com/q/62249/259048&#34;&gt;xrandr to adjust screen brightness&lt;/a&gt;.  However, the&#xA;factor (default to 1.0) is &lt;em&gt;relative&lt;/em&gt; to the current brightness.&#xA;&lt;strong&gt;How to enable the brightness adjust keys &lt;i class=&#34;far fa-sun&#34;&#xA;aria-hidden&gt;&lt;/i&gt;&lt;i class=&#34;fa fa-caret-up&#34; aria-hidden&gt;&lt;/i&gt;/&lt;i&#xA;class=&#34;far fa-sun&#34; aria-hidden&gt;&lt;/i&gt;&lt;i class=&#34;fa fa-caret-down&#34;&#xA;aria-hidden&gt;&lt;/i&gt; on the keyboard under Xubuntu 18.04?&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;solution&#34;&gt;Solution&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://ubuntuforums.org/showthread.php?t=2080301&#34;&gt;Toz&amp;rsquo;s post&lt;/a&gt; on Ubuntu Forum works like a charm.  The default value&#xA;for &lt;code&gt;GRUB_CMDLINE_LINUX&lt;/code&gt; is an &lt;em&gt;empty&lt;/em&gt; string.  Changing it to&#xA;&lt;code&gt;acpi_backlight=vendor&lt;/code&gt; and updating the &lt;a href=&#34;https://www.gnu.org/software/grub/&#34;&gt;GRUB&lt;/a&gt; has solved the&#xA;problem since the next boot.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Stow Your Dotfiles</title>
      <link>https://vincenttam.gitlab.io/post/2018-07-08-stow-your-dotfiles/</link>
      <pubDate>Sun, 08 Jul 2018 16:01:22 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-07-08-stow-your-dotfiles/</guid>
      <description>&lt;p&gt;I correctly set up the system configuration file manager &lt;a href=&#34;https://www.gnu.org/software/stow/&#34;&gt;GNU Stow&lt;/a&gt;&#xA;and the version control system (VCS) &lt;a href=&#34;https://git-scm.com/&#34;&gt;Git&lt;/a&gt; on&#xA;&lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-07-04-fujitsu-lh532-fan-cleaning/&#34;&gt;my Fujitsu Lifebook&lt;/a&gt; so that the former can automatically&#xA;&lt;a href=&#34;https://brandon.invergo.net/news/2012-05-26-using-gnu-stow-to-manage-your-dotfiles.html&#34;&gt;install system configuration files like modules&lt;/a&gt;, whereas the later&#xA;can track the code in those files.&lt;/p&gt;&#xA;&lt;p&gt;What I mean for &lt;em&gt;correctly&lt;/em&gt; is that in the &lt;code&gt;ssh&lt;/code&gt; folder of the remote&#xA;dotfiles repo, there is &lt;em&gt;neither&lt;/em&gt; SSH key files &lt;em&gt;nor&lt;/em&gt; entries&#xA;representing SSH keys in the gitignore file.  You may view&#xA;&lt;a href=&#34;https://gitlab.com/juhlik/dotfiles/tree/e45cf51c3a073f64b1f707ac6cbc78ef38715e45&#34;&gt;Jan Uhlik&amp;rsquo;s dotfiles&lt;/a&gt; on GitLab as an example.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Upgraded to Linux Mint 19</title>
      <link>https://vincenttam.gitlab.io/post/2018-07-07-upgraded-to-linux-mint-19/</link>
      <pubDate>Sat, 07 Jul 2018 21:14:02 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-07-07-upgraded-to-linux-mint-19/</guid>
      <description>&lt;h3 id=&#34;rationale&#34;&gt;Rationale&lt;/h3&gt;&#xA;&lt;p&gt;My &lt;a href=&#34;https://linuxmint.com/edition.php?id=248&#34;&gt;Linux Mint 18.3&lt;/a&gt; installed on Clevo N240GU &lt;i class=&#34;fa&#xA;fa-laptop&#34; aria-hidden&gt;&lt;/i&gt; was a long-term support (LTS) version.&#xA;Although the &lt;a href=&#34;https://blog.linuxmint.com/?p=3615&#34;&gt;official page&lt;/a&gt; &lt;em&gt;didn&amp;rsquo;t&lt;/em&gt; recommend an upgrade for its&#xA;own sake, I still performed it as a result of my conversation with a&#xA;technician in a computer store.  He thought that the display problem&#xA;in the current version would be &lt;em&gt;fixed&lt;/em&gt; in this upgraded version.&lt;/p&gt;&#xA;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;https://vincenttam.gitlab.io/css/hugo-easy-gallery.css&#34; /&gt;&#xA;&lt;div class=&#34;box&#34; &gt;&#xA;  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;&#xA;    &lt;div class=&#34;img&#34;&gt;&#xA;      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;20180706_213156_HDR.jpg&#34; alt=&#34;Linux Mint 18.3&#34;/&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;a href=&#34;20180706_213156_HDR.jpg&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;&#xA;  &lt;/figure&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;The old version of Linux Mint &lt;em&gt;couldn&amp;rsquo;t&lt;/em&gt; detect the onboard Intel&#xA;graphics card.  Therefore, &lt;code&gt;sensors&lt;/code&gt; reported a higher CPU temperature&#xA;and the display resolution &lt;em&gt;couldn&amp;rsquo;t&lt;/em&gt; be correctly configured.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fujitsu LH532 Fan Cleaning</title>
      <link>https://vincenttam.gitlab.io/post/2018-07-04-fujitsu-lh532-fan-cleaning/</link>
      <pubDate>Wed, 04 Jul 2018 20:52:37 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-07-04-fujitsu-lh532-fan-cleaning/</guid>
      <description>&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;Two months ago, the Win* 10 installed on my old laptop crashed with&#xA;blue screen on startup.  Two weeks ago, I created a &lt;a href=&#34;https://xubuntu.org/release/18-04/&#34;&gt;Xubuntu 18.04&lt;/a&gt;&#xA;LTS 64-bit Live USB and set up the &lt;a href=&#34;https://vincenttam.gitlab.io/post/2018-06-28-xubuntu-dualboot-on-fujitsu-lh532/&#34;&gt;dualboot&lt;/a&gt;.  However, the fan&#xA;was still giving out &lt;em&gt;consideralbe noise and heat&lt;/em&gt; under Xubuntu 18.04&#xA;(installed in &lt;code&gt;/dev/sda7&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;h3 id=&#34;many-end-users-reaction&#34;&gt;Many end users&amp;rsquo; reaction&lt;/h3&gt;&#xA;&lt;p&gt;They&amp;rsquo;ll simply buy a new PC.  This had given rise to industrial parks&#xA;in Guiyu (貴嶼), one of &lt;a href=&#34;https://owlcation.com/stem/15-of-the-Worlds-Largest-Landfills&#34;&gt;the world&amp;rsquo;s largest e-waste village&lt;/a&gt;.  I&amp;rsquo;m&#xA;so shocked to see that Hong Kong appears on the top of the linked&#xA;article.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Configure UFW for Hugo</title>
      <link>https://vincenttam.gitlab.io/post/2018-06-29-hugo-ufw/</link>
      <pubDate>Fri, 29 Jun 2018 06:36:21 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-06-29-hugo-ufw/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://sites.google.com/site/easylinuxtipsproject/security#TOC-Firewall&#34;&gt;Easy Linux tips project&lt;/a&gt; recommends users to enable their&#xA;firewall.  However, this blocks all incoming traffic by default.  If&#xA;one wants to &lt;a href=&#34;https://vincenttam.github.io/blog/2016/08/21/website-preview-in-mobile-devices/&#34;&gt;test the site on mobile devices&lt;/a&gt;, one will need to&#xA;add a few rules to &lt;a href=&#34;https://launchpad.net/ufw&#34;&gt;UFW&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ sudo ufw allow ssh&#xA;$ sudo ufw allow http&#xA;$ sudo ufw allow https&#xA;$ sudo ufw allow 80/tcp&#xA;$ sudo ufw allow 1313/tcp comment &amp;quot;hugo server&amp;quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;I learnt the last line from &lt;a href=&#34;https://xn--v6q832hwdkvom.com/post/ufw/#%E3%83%AB%E3%83%BC%E3%83%AB%E3%81%AB%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF&#34;&gt;竹内電設&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Xubuntu Dualboot on Fujitsu LH532</title>
      <link>https://vincenttam.gitlab.io/post/2018-06-28-xubuntu-dualboot-on-fujitsu-lh532/</link>
      <pubDate>Thu, 28 Jun 2018 21:50:45 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-06-28-xubuntu-dualboot-on-fujitsu-lh532/</guid>
      <description>&lt;p&gt;You may skip to the &lt;a href=&#34;#blow-up-and-rebuild&#34;&gt;acutal setup&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;After using Win 7 &amp;amp; 10 for six years on my Fujitsu LH532 &lt;i class=&#34;fa&#xA;fa-laptop&#34; aria-hidden&gt;&lt;/i&gt;, Windows 10 often falls into blue screen.&#xA;Sometimes, it &lt;em&gt;won&amp;rsquo;t&lt;/em&gt; even start up.&lt;/p&gt;&#xA;&lt;h3 id=&#34;give-xubuntu-a-try&#34;&gt;Give Xubuntu a try&lt;/h3&gt;&#xA;&lt;p&gt;Hoping to give a second life to my old &lt;i class=&#34;fa fa-laptop&#34;&#xA;aria-hidden&gt;&lt;/i&gt;, I&amp;rsquo;ve decided to try this popular lightweight&#xA;distro.&lt;/p&gt;&#xA;&lt;h4 id=&#34;initial-partition-setup&#34;&gt;Initial partition setup&lt;/h4&gt;&#xA;&lt;p&gt;I followed the instructions from &lt;a href=&#34;https://askubuntu.com/q/343268/259048&#34;&gt;Danatela&amp;rsquo;s question&lt;/a&gt;, including&#xA;the optional setup of separate &lt;code&gt;/var&lt;/code&gt; and &lt;code&gt;/tmp&lt;/code&gt; partition.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Agencer</title>
      <link>https://vincenttam.gitlab.io/post/2018-06-26-agencer/</link>
      <pubDate>Tue, 26 Jun 2018 20:13:17 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-06-26-agencer/</guid>
      <description>&lt;p&gt;v. arranger, organiser&lt;/p&gt;&#xA;&lt;p&gt;La cuisine est bien agencée.&lt;/p&gt;</description>
    </item>
    <item>
      <title>My First Post</title>
      <link>https://vincenttam.gitlab.io/post/2018-06-24-my-first-post/</link>
      <pubDate>Sun, 24 Jun 2018 02:05:00 +0200</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2018-06-24-my-first-post/</guid>
      <description>&lt;h3 id=&#34;introduction&#34;&gt;Introduction&lt;/h3&gt;&#xA;&lt;p&gt;Hello World!  This is my new GitLab page powered by Hugo.  I&amp;rsquo;m setting&#xA;up this blog to practise my math, foreign languages and IT skills.&lt;/p&gt;&#xA;&lt;h3 id=&#34;why-hugo&#34;&gt;Why Hugo?&lt;/h3&gt;&#xA;&lt;p&gt;My original goal is to set up a personal blog for posting math.&lt;/p&gt;&#xA;&lt;p&gt;I used to work with Octopress, but resolving the dependencies and&#xA;other technical issues  had actually took &lt;em&gt;much&lt;/em&gt; more time and effort&#xA;than expected.  As a result, I digressed a lot from my studies to look&#xA;into those problems.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Math Sample</title>
      <link>https://vincenttam.gitlab.io/post/2017-03-05-math-sample/</link>
      <pubDate>Sun, 05 Mar 2017 00:00:00 +0000</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2017-03-05-math-sample/</guid>
      <description>&lt;p&gt;&lt;i class=&#34;fa fa-exclamation-circle&#34;&gt;&lt;/i&gt; &lt;em&gt;This is a sample created by&#xA;the developer of Beautiful Hugo.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;KaTeX can be used to generate complex math formulas server-side.&lt;/p&gt;&#xA;&lt;div&gt;$$&#xA;\phi = \frac{(1+\sqrt{5})}{2} = 1.6180339887\cdots&#xA;$$&lt;/div&gt;&#xA;&lt;p&gt;Additional details can be found on &lt;a href=&#34;https://github.com/Khan/KaTeX&#34;&gt;GitHub&lt;/a&gt; or on the &lt;a href=&#34;http://tiddlywiki.com/plugins/tiddlywiki/katex/&#34;&gt;Wiki&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Code Sample</title>
      <link>https://vincenttam.gitlab.io/post/2016-03-08-code-sample/</link>
      <pubDate>Tue, 08 Mar 2016 00:00:00 +0000</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2016-03-08-code-sample/</guid>
      <description>&lt;p&gt;&lt;i class=&#34;fa fa-exclamation-circle&#34;&gt;&lt;/i&gt; &lt;em&gt;This is a sample created by&#xA;the developer of Beautiful Hugo.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;The following are two code samples using syntax highlighting.&lt;/p&gt;</description>
    </item>
    <item>
      <title></title>
      <link>https://vincenttam.gitlab.io/post/2021-08-23-import-once-in-julia/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://vincenttam.gitlab.io/post/2021-08-23-import-once-in-julia/</guid>
      <description>&lt;p&gt;j&amp;mdash;&#xA;title: &amp;ldquo;Import Once in Julia&amp;rdquo;&#xA;date: 2021-08-23T16:24:40+02:00&#xA;categories:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;technical support&#xA;tags:&lt;/li&gt;&#xA;&lt;li&gt;julia&#xA;draft: false&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;background&#34;&gt;Background&lt;/h3&gt;&#xA;&lt;p&gt;I&amp;rsquo;m reading &lt;a href=&#34;https://benlauwens.github.io/ThinkJulia.jl/latest/book.html&#34;&gt;&lt;em&gt;Think Julia&lt;/em&gt;&lt;/a&gt; to repick the language again.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;To import a package/module, we &lt;code&gt;using Foo&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;To run a script within the REPL, we &lt;code&gt;include(&amp;quot;foo.jl&amp;quot;)&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This is useful for user-defined functions, which are usually multi-line.&lt;/p&gt;&#xA;&lt;h3 id=&#34;problem&#34;&gt;Problem&lt;/h3&gt;&#xA;&lt;p&gt;How to avoid importing a module/including a file twice?&lt;/p&gt;&#xA;&lt;h3 id=&#34;solution&#34;&gt;Solution&lt;/h3&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s a modified code from the book to give an example.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Java</title>
      <link>https://vincenttam.gitlab.io/page/questions-reponses/java/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://vincenttam.gitlab.io/page/questions-reponses/java/</guid>
      <description>&lt;p&gt;Je me sers de ce fichier comme&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;la speech pour mes futurs entretiens&lt;/li&gt;&#xA;&lt;li&gt;le dépôt des doutes et leurs réponses que je recueilis&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;dans mon apprentissage.  Je ne cherche pas une réponse détaillée (qu&amp;rsquo;on trouve&#xA;facilement dans un livre ou un manuel).&lt;/p&gt;&#xA;&lt;h3 id=&#34;générale&#34;&gt;Générale&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;C&amp;rsquo;est quoi Java ?&lt;/p&gt;&#xA;&lt;p&gt;Java est un langage de programmation intermédiaire.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;compilé : son compilateur produit un fichier qui n&amp;rsquo;est ni visible pour le&#xA;développeur ni pour le système d&amp;rsquo;exploitation.&lt;/li&gt;&#xA;&lt;li&gt;interprété : le fichier compilé&#xA;&lt;ul&gt;&#xA;&lt;li&gt;en bytecode Java avec l&amp;rsquo;extension CLASS, ou&lt;/li&gt;&#xA;&lt;li&gt;en archive JAR&#xA;doit être interprété par une machine virtuelle.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Pourquoi utiliser Java ?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Questions Réponses</title>
      <link>https://vincenttam.gitlab.io/page/questions-reponses/questions-reponses/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://vincenttam.gitlab.io/page/questions-reponses/questions-reponses/</guid>
      <description>&lt;p&gt;Une question ?  Une réponse.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;../java/&#34;&gt;&lt;i class=&#34;fab fa-java fa-lg&#34;&gt;&lt;/i&gt; Java&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
  </channel>
</rss>
