<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Rust on Solarized Sublime Sekai</title>
    <link>https://vincenttam.gitlab.io/tags/rust/</link>
    <description>Recent content in Rust on Solarized Sublime Sekai</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Thu, 12 Mar 2026 19:33:58 +0100</lastBuildDate>
    <atom:link href="https://vincenttam.gitlab.io/tags/rust/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>
  </channel>
</rss>
