<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Dr. Hitaishi V&apos;s Blog</title><description>Notes on nonlinear optics, photonics, and scientific computing.</description><link>https://hitaishiv.com/</link><language>en-us</language><atom:link href="https://hitaishiv.com/rss.xml" rel="self" type="application/rss+xml"/><item><title>imli.nvim: A Warm Colorscheme for Neovim</title><link>https://hitaishiv.com/blog/imli-nvim-release/</link><guid isPermaLink="true">https://hitaishiv.com/blog/imli-nvim-release/</guid><description>Why I built my own Neovim colorscheme, what is inside it, and how to install it with lazy.nvim or the native vim.pack.</description><pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate><content:encoded>If you have spent any time in the Neovim community, you know the cycle. You
install a colorscheme, it looks great for a day, and then something feels off.
The comments are too loud. The active tab looks exactly like the inactive
ones. The light theme is an afterthought. So you install another one. And
another. I have been through this loop more times than I can count, and
every time I end up tweaking someone else&apos;s colorscheme until it is barely
theirs anymore.

So I finally did what every Neovim user threatens to do at some point. I made
my own. It is called **imli.nvim**, a warm, ember-and-coffee colorscheme for
Neovim with both a dark and a light variant.

## Why &quot;warm&quot;?

Most dark themes live in the blue-gray space. They are fine. They are also
everywhere. I wanted something that felt like a desk lamp at midnight rather
than a server room at 3 AM. So the dark variant sits on a deep blue-black
base (`#0b1418`) with warm foreground tones (`#e8e0d4`), and the accent
colors are ember oranges, coffee browns, and muted golds. The light variant
is the same idea with light and dark swapped: a cream-paper background
(`#e7dfd2`) with warm ink (`#4a4238`).

The goal was simple: something easy on the eyes during long writing and
coding sessions, with enough contrast that I am not squinting at my own code
at 2 AM.

## What is inside

- **Two hand-tuned variants.** Dark and light, switchable with
  `vim.o.background`
- **Treesitter-first.** Full coverage for the common captures, plus LSP
  semantic token overrides where they matter
- **UI consistency.** Statusline, tabline, popups, diagnostics, which-key,
  mini.icons, and render-markdown all get explicit colors
- **A proper tabline.** The active tab gets a distinct background
  (`#132631`) so you always know where you are. This was the last fix
  before release, and honestly it should have been the first thing I checked
- **Configurable comments.** Adjust comment opacity and italics to taste
  (`comment_opacity` from 0.1 to 1.0)
- **Per-filetype overrides.** Winhighlight-based, so no glitches
- **Terminal colors.** All 16 slots match the palette

## Installing it

The colorscheme needs Neovim 0.9+ (it uses `nvim_set_hl`). If you are on
0.12+, you can use the new native `vim.pack` package manager. No plugin
manager required:

```lua
vim.pack.add(&quot;https://github.com/hitaishi2222/imli-nvim&quot;)

require(&quot;imli&quot;).setup()
vim.cmd(&quot;colorscheme imli&quot;)
```

That is it. It clones on first use, tracks everything in a lockfile, and you
can update later with `vim.pack.update()`.

If you are on lazy.nvim:

```lua
{
  &quot;hitaishi2222/imli-nvim&quot;,
  lazy = false,
  priority = 1000,
  config = function()
    require(&quot;imli&quot;).setup()
    vim.cmd(&quot;colorscheme imli&quot;)
  end,
}
```

It also works with packer.nvim and vim-plug. Full instructions, the complete
palette tables, and a banner image are in the
[README](https://github.com/hitaishi2222/imli-nvim).

## Configuration

Everything is optional. The defaults are:

```lua
require(&quot;imli&quot;).setup({
  italic_comments = true,   -- italicize comments
  comment_opacity  = 1.0,   -- 0.1 (barely visible) .. 1.0 (full color)
  filetypes        = nil,   -- nil = built-in python/lua overrides
})
```

If the comments are too loud for you, drop `comment_opacity` to something
like 0.7. If you want them italic, keep `italic_comments = true`. If you
want your own per-filetype overrides, pass a table to `filetypes`. The
format is documented in the README.

## Why I released it

Honestly? Because I was tired of maintaining a fork of someone else&apos;s
colorsheme in my dotfiles. Every update was a small negotiation. This way,
the source of truth is the repo, the lockfile pins the version, and I can
update with one command.

But also because I think a colorscheme is one of the most personal parts of a
developer&apos;s setup. It is the thing you look at for hours every day. If mine
makes even one person&apos;s late-night coding session a little warmer, that is
enough for me.

It is open source (MIT), it is on GitHub, and issues and pull requests are
welcome. If something looks off in your favorite filetype, tell me. That is
how these things get better.

Happy hacking.</content:encoded><category>neovim</category><category>lua</category><category>open source</category><category>colorscheme</category></item><item><title>Hello Typst: Math-Heavy Posts, Natively</title><link>https://hitaishiv.com/blog/hello-typst/</link><guid isPermaLink="true">https://hitaishiv.com/blog/hello-typst/</guid><description>Why I&apos;m adding Typst as a first-class writing format for this blog: beautiful equations without the LaTeX baggage.</description><pubDate>Wed, 20 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;style data-typst&gt;/* Alignment */
mtable.right-align mtd,
mtable mtd.right-align,
mtable.left-align mtd.right-align,
mtable.aligned mtd:nth-child(odd) {
  justify-items: end;
  text-align: right;
}
mtable.cases mtd,
mtable.left-align mtd,
mtable mtd.left-align,
mtable.aligned mtd:nth-child(even),
math:is(:not([display])) &gt; mtable.multiline-equation mtd {
  justify-items: start;
  text-align: left;
}
mtable.cases mtd,
mtable.aligned mtd,
mtable mtd.flushed,
mtable mtd.left-flush {
  padding-left: 0;
}
mtable.cases mtd,
mtable.aligned mtd,
mtable mtd.flushed,
mtable mtd.right-flush {
  padding-right: 0;
}

/* Tables */
mtable {
  math-style: inherit;
}
mtd {
  math-depth: auto-add;
  math-style: compact;
  math-shift: compact;
}

/* Equations */
mtable.multiline-equation mtd {
  math-depth: inherit;
  math-style: inherit;
  math-shift: inherit;
  padding: 0;
}
math &gt; mtable.multiline-equation mtr:not(:last-child) mtd {
  padding-bottom: 0.5em;
}

/* Fractions */
mfrac {
  padding-inline: 0;
  margin-inline: 0.1em;
}

/* Accents */
mover[accent=&quot;true&quot; i] &gt; :first-child {
  font-feature-settings: &quot;dtls&quot;;
}
mover.dotted[accent=&quot;true&quot; i] &gt; :first-child {
  font-feature-settings: &quot;dtls&quot; 0;
}

/* Other rules for scriptlevel, displaystyle and math-shift */
munder &gt; :nth-child(2),
munderover &gt; :nth-child(2) {
  math-shift: compact
}
munder[accentunder=&quot;true&quot; i] &gt; :not(:first-child),
mover[accent=&quot;true&quot; i] &gt; :not(:first-child) {
  math-depth: inherit;
  math-style: inherit;
  math-shift: inherit;
}&lt;/style&gt;
&lt;h2&gt;Why Typst?&lt;/h2&gt;&lt;p&gt;LaTeX is a 40-year-old toolchain held together by duct tape and prayer. Typst compiles in milliseconds, has sane syntax, and its math notation is actually readable. This entire post is a &lt;code&gt;.typ&lt;/code&gt; file compiled to HTML at build time.&lt;/p&gt;&lt;h3&gt;The dispersion relation&lt;/h3&gt;&lt;p&gt;For a chalcogenide waveguide, the propagation constant expands as:&lt;/p&gt;&lt;div class=&quot;eq-scroll&quot;&gt;&lt;math display=&quot;block&quot;&gt;&lt;mi&gt;𝛽&lt;/mi&gt;&lt;mrow&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;mi&gt;𝜔&lt;/mi&gt;&lt;mo&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;𝛽&lt;/mi&gt;&lt;mn&gt;0&lt;/mn&gt;&lt;/msub&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;𝛽&lt;/mi&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;/msub&gt;&lt;mrow&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;𝜔&lt;/mi&gt;&lt;mo&gt;−&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;𝜔&lt;/mi&gt;&lt;mn&gt;0&lt;/mn&gt;&lt;/msub&gt;&lt;/mrow&gt;&lt;mo&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mfrac&gt;&lt;msub&gt;&lt;mi&gt;𝛽&lt;/mi&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/msub&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/mfrac&gt;&lt;msup&gt;&lt;mrow&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;𝜔&lt;/mi&gt;&lt;mo&gt;−&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;𝜔&lt;/mi&gt;&lt;mn&gt;0&lt;/mn&gt;&lt;/msub&gt;&lt;/mrow&gt;&lt;mo&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/msup&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mi&gt;…&lt;/mi&gt;&lt;/math&gt;&lt;/div&gt;&lt;p&gt;where &lt;math&gt;&lt;msub&gt;&lt;mi&gt;𝛽&lt;/mi&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/msub&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;msup&gt;&lt;mo form=&quot;prefix&quot; lspace=&quot;0em&quot; rspace=&quot;0em&quot;&gt;d&lt;/mo&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/msup&gt;&lt;mfrac&gt;&lt;mi&gt;𝛽&lt;/mi&gt;&lt;mo form=&quot;prefix&quot; lspace=&quot;0em&quot; rspace=&quot;0em&quot;&gt;d&lt;/mo&gt;&lt;/mfrac&gt;&lt;msup&gt;&lt;mi&gt;𝜔&lt;/mi&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/msup&gt;&lt;mspace width=&quot;0.2222em&quot;/&gt;&lt;msub&gt;&lt;mo stretchy=&quot;false&quot;&gt;|&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;𝜔&lt;/mi&gt;&lt;mn&gt;0&lt;/mn&gt;&lt;/msub&gt;&lt;/msub&gt;&lt;/math&gt; is the group-velocity dispersion parameter, usually quoted in ps^2/m.&lt;/p&gt;&lt;h3&gt;Generalized nonlinear Schrödinger equation&lt;/h3&gt;&lt;p&gt;Supercontinuum evolution obeys (broken across lines for readability):&lt;/p&gt;&lt;div class=&quot;eq-scroll&quot;&gt;&lt;math display=&quot;block&quot;&gt;&lt;mtable class=&quot;multiline-equation aligned&quot;&gt;&lt;mtr&gt;&lt;mtd&gt;&lt;mfrac&gt;&lt;mrow&gt;&lt;mo lspace=&quot;0em&quot; rspace=&quot;0em&quot;&gt;d&lt;/mo&gt;&lt;mi&gt;𝐴&lt;/mi&gt;&lt;/mrow&gt;&lt;mrow&gt;&lt;mo lspace=&quot;0em&quot; rspace=&quot;0em&quot;&gt;d&lt;/mo&gt;&lt;mi&gt;𝑧&lt;/mi&gt;&lt;/mrow&gt;&lt;/mfrac&gt;&lt;/mtd&gt;&lt;mtd&gt;&lt;mo form=&quot;infix&quot;&gt;=&lt;/mo&gt;&lt;mi&gt;𝑖&lt;/mi&gt;&lt;munder&gt;&lt;mo form=&quot;prefix&quot;&gt;∑&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;𝑘&lt;/mi&gt;&lt;mo lspace=&quot;0em&quot; rspace=&quot;0em&quot;&gt;≥&lt;/mo&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/mrow&gt;&lt;/munder&gt;&lt;mfrac&gt;&lt;mrow&gt;&lt;msup&gt;&lt;mi&gt;𝑖&lt;/mi&gt;&lt;mrow&gt;&lt;mi&gt;𝑘&lt;/mi&gt;&lt;mo lspace=&quot;0em&quot; rspace=&quot;0em&quot;&gt;+&lt;/mo&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;/mrow&gt;&lt;/msup&gt;&lt;msub&gt;&lt;mi&gt;𝛽&lt;/mi&gt;&lt;mi&gt;𝑘&lt;/mi&gt;&lt;/msub&gt;&lt;/mrow&gt;&lt;mrow&gt;&lt;mi&gt;𝑘&lt;/mi&gt;&lt;mo&gt;!&lt;/mo&gt;&lt;/mrow&gt;&lt;/mfrac&gt;&lt;mfrac&gt;&lt;mrow&gt;&lt;msup&gt;&lt;mo lspace=&quot;0em&quot; rspace=&quot;0em&quot;&gt;d&lt;/mo&gt;&lt;mi&gt;𝑘&lt;/mi&gt;&lt;/msup&gt;&lt;mi&gt;𝐴&lt;/mi&gt;&lt;/mrow&gt;&lt;mrow&gt;&lt;mo lspace=&quot;0em&quot; rspace=&quot;0em&quot;&gt;d&lt;/mo&gt;&lt;msup&gt;&lt;mi&gt;𝑇&lt;/mi&gt;&lt;mi&gt;𝑘&lt;/mi&gt;&lt;/msup&gt;&lt;/mrow&gt;&lt;/mfrac&gt;&lt;/mtd&gt;&lt;/mtr&gt;&lt;mtr&gt;&lt;mtd&gt;&lt;/mtd&gt;&lt;mtd&gt;&lt;mspace width=&quot;1em&quot;/&gt;&lt;mo form=&quot;prefix&quot;&gt;+&lt;/mo&gt;&lt;mi&gt;𝑖&lt;/mi&gt;&lt;mi&gt;𝛾&lt;/mi&gt;&lt;mrow&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;mrow&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mfrac&gt;&lt;mi&gt;𝑖&lt;/mi&gt;&lt;msub&gt;&lt;mi&gt;𝜔&lt;/mi&gt;&lt;mn&gt;0&lt;/mn&gt;&lt;/msub&gt;&lt;/mfrac&gt;&lt;mfrac&gt;&lt;mo form=&quot;prefix&quot; lspace=&quot;0em&quot; rspace=&quot;0em&quot;&gt;d&lt;/mo&gt;&lt;mrow&gt;&lt;mo lspace=&quot;0em&quot; rspace=&quot;0em&quot;&gt;d&lt;/mo&gt;&lt;mi&gt;𝑇&lt;/mi&gt;&lt;/mrow&gt;&lt;/mfrac&gt;&lt;/mrow&gt;&lt;mo&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;mi&gt;𝐴&lt;/mi&gt;&lt;mrow&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;𝑧&lt;/mi&gt;&lt;mo&gt;,&lt;/mo&gt;&lt;mi&gt;𝑇&lt;/mi&gt;&lt;/mrow&gt;&lt;mo&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;msubsup&gt;&lt;mo form=&quot;prefix&quot;&gt;∫&lt;/mo&gt;&lt;mrow&gt;&lt;mo&gt;−&lt;/mo&gt;&lt;mi&gt;∞&lt;/mi&gt;&lt;/mrow&gt;&lt;mi&gt;∞&lt;/mi&gt;&lt;/msubsup&gt;&lt;mi&gt;𝑅&lt;/mi&gt;&lt;mrow&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;msup&gt;&lt;mi&gt;𝑇&lt;/mi&gt;&lt;mo&gt;′&lt;/mo&gt;&lt;/msup&gt;&lt;mo&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;mspace width=&quot;0.2222em&quot;/&gt;&lt;mo lspace=&quot;0em&quot; rspace=&quot;0em&quot;&gt;|&lt;/mo&gt;&lt;mi&gt;𝐴&lt;/mi&gt;&lt;mrow&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;𝑇&lt;/mi&gt;&lt;mo&gt;−&lt;/mo&gt;&lt;msup&gt;&lt;mi&gt;𝑇&lt;/mi&gt;&lt;mo&gt;′&lt;/mo&gt;&lt;/msup&gt;&lt;/mrow&gt;&lt;mo&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;msup&gt;&lt;mo lspace=&quot;0em&quot; rspace=&quot;0em&quot;&gt;|&lt;/mo&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/msup&gt;&lt;mspace width=&quot;0.1667em&quot;/&gt;&lt;mo form=&quot;prefix&quot; lspace=&quot;0em&quot; rspace=&quot;0em&quot;&gt;d&lt;/mo&gt;&lt;msup&gt;&lt;mi&gt;𝑇&lt;/mi&gt;&lt;mo&gt;′&lt;/mo&gt;&lt;/msup&gt;&lt;/mtd&gt;&lt;/mtr&gt;&lt;/mtable&gt;&lt;/math&gt;&lt;/div&gt;&lt;p&gt;Yes, that fits on one line. Try that in Word.&lt;/p&gt;&lt;h3&gt;A quick table&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Material&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;&lt;math&gt;&lt;msub&gt;&lt;mi&gt;𝛽&lt;/mi&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/msub&gt;&lt;/math&gt; @ 1550 nm&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Nonlinear index &lt;math&gt;&lt;msub&gt;&lt;mi&gt;𝑛&lt;/mi&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/msub&gt;&lt;/math&gt;&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SiO&lt;sub&gt;2&lt;/sub&gt;&lt;/td&gt;&lt;td&gt;+0.026 ps^2/m&lt;/td&gt;&lt;td&gt;&lt;math&gt;&lt;mn&gt;2.6&lt;/mn&gt;&lt;mo lspace=&quot;0.2222222222222222em&quot; rspace=&quot;0.2222222222222222em&quot;&gt;×&lt;/mo&gt;&lt;msup&gt;&lt;mn&gt;10&lt;/mn&gt;&lt;mrow&gt;&lt;mo&gt;−&lt;/mo&gt;&lt;mn&gt;20&lt;/mn&gt;&lt;/mrow&gt;&lt;/msup&gt;&lt;/math&gt; m^2/W&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;As&lt;sub&gt;2&lt;/sub&gt;S&lt;sub&gt;3&lt;/sub&gt;&lt;/td&gt;&lt;td&gt;−0.010 ps^2/m&lt;/td&gt;&lt;td&gt;&lt;math&gt;&lt;mn&gt;3.0&lt;/mn&gt;&lt;mo lspace=&quot;0.2222222222222222em&quot; rspace=&quot;0.2222222222222222em&quot;&gt;×&lt;/mo&gt;&lt;msup&gt;&lt;mn&gt;10&lt;/mn&gt;&lt;mrow&gt;&lt;mo&gt;−&lt;/mo&gt;&lt;mn&gt;18&lt;/mn&gt;&lt;/mrow&gt;&lt;/msup&gt;&lt;/math&gt; m^2/W&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;As&lt;sub&gt;2&lt;/sub&gt;Se&lt;sub&gt;3&lt;/sub&gt;&lt;/td&gt;&lt;td&gt;−0.049 ps^2/m&lt;/td&gt;&lt;td&gt;&lt;math&gt;&lt;mn&gt;1.2&lt;/mn&gt;&lt;mo lspace=&quot;0.2222222222222222em&quot; rspace=&quot;0.2222222222222222em&quot;&gt;×&lt;/mo&gt;&lt;msup&gt;&lt;mn&gt;10&lt;/mn&gt;&lt;mrow&gt;&lt;mo&gt;−&lt;/mo&gt;&lt;mn&gt;17&lt;/mn&gt;&lt;/mrow&gt;&lt;/msup&gt;&lt;/math&gt; m^2/W&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;h3&gt;And code blocks work too&lt;/h3&gt;&lt;pre&gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span style=&quot;color: #d73948&quot;&gt;import&lt;/span&gt; numpy &lt;span style=&quot;color: #d73948&quot;&gt;as&lt;/span&gt; np

&lt;span style=&quot;color: #d73948&quot;&gt;def&lt;/span&gt; &lt;span style=&quot;color: #4b69c6&quot;&gt;gvd&lt;/span&gt;(beta2: &lt;span style=&quot;color: #4b69c6&quot;&gt;float&lt;/span&gt;, L: &lt;span style=&quot;color: #4b69c6&quot;&gt;float&lt;/span&gt;) -&gt; &lt;span style=&quot;color: #4b69c6&quot;&gt;float&lt;/span&gt;:
    &lt;span style=&quot;color: #74747c&quot;&gt;&quot;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: #74747c&quot;&gt;Accumulated GVD over length L.&lt;/span&gt;&lt;span style=&quot;color: #74747c&quot;&gt;&quot;&quot;&quot;&lt;/span&gt;
    &lt;span style=&quot;color: #d73948&quot;&gt;return&lt;/span&gt; beta2 &lt;span style=&quot;color: #d73948&quot;&gt;*&lt;/span&gt; L&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;Closing thought&lt;/h2&gt;&lt;p&gt;Expect more equation-dense posts in this format. The markdown pipeline isn’t going anywhere. Now there are simply two ways to write here.&lt;/p&gt;&lt;h3&gt;Equations, aligned and numbered&lt;/h3&gt;&lt;p&gt;Typst aligns on &lt;code&gt;&amp;amp;&lt;/code&gt; without any extra environment. Pair that with &lt;code&gt;#set math.equation(numbering: ...)&lt;/code&gt; and display equations come out numbered like everything else:&lt;/p&gt;&lt;div class=&quot;eq-scroll&quot;&gt;&lt;math display=&quot;block&quot;&gt;&lt;msub&gt;&lt;mi&gt;𝑃&lt;/mi&gt;&lt;mtext&gt;out&lt;/mtext&gt;&lt;/msub&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;msubsup&gt;&lt;mo form=&quot;prefix&quot; lspace=&quot;0em&quot;&gt;∫&lt;/mo&gt;&lt;mn&gt;0&lt;/mn&gt;&lt;mi&gt;𝐿&lt;/mi&gt;&lt;/msubsup&gt;&lt;msub&gt;&lt;mi&gt;𝑃&lt;/mi&gt;&lt;mtext&gt;in&lt;/mtext&gt;&lt;/msub&gt;&lt;msup&gt;&lt;mi&gt;𝑒&lt;/mi&gt;&lt;mrow&gt;&lt;mo&gt;−&lt;/mo&gt;&lt;mi&gt;𝛼&lt;/mi&gt;&lt;mi&gt;𝑧&lt;/mi&gt;&lt;/mrow&gt;&lt;/msup&gt;&lt;mspace width=&quot;0.1667em&quot;/&gt;&lt;mo form=&quot;prefix&quot; lspace=&quot;0em&quot; rspace=&quot;0em&quot;&gt;d&lt;/mo&gt;&lt;mi&gt;𝑧&lt;/mi&gt;&lt;/math&gt;&lt;/div&gt;&lt;div class=&quot;eq-scroll&quot;&gt;&lt;math display=&quot;block&quot;&gt;&lt;mtable class=&quot;multiline-equation aligned&quot;&gt;&lt;mtr&gt;&lt;mtd&gt;&lt;msub&gt;&lt;mi&gt;𝛽&lt;/mi&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/msub&gt;&lt;/mtd&gt;&lt;mtd&gt;&lt;mo form=&quot;infix&quot;&gt;=&lt;/mo&gt;&lt;msup&gt;&lt;mo form=&quot;prefix&quot; lspace=&quot;0em&quot; rspace=&quot;0em&quot;&gt;d&lt;/mo&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/msup&gt;&lt;mfrac&gt;&lt;mi&gt;𝛽&lt;/mi&gt;&lt;mo form=&quot;prefix&quot; lspace=&quot;0em&quot; rspace=&quot;0em&quot;&gt;d&lt;/mo&gt;&lt;/mfrac&gt;&lt;msup&gt;&lt;mi&gt;𝜔&lt;/mi&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/msup&gt;&lt;mspace width=&quot;0.2222em&quot;/&gt;&lt;msub&gt;&lt;mo stretchy=&quot;false&quot;&gt;|&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;𝜔&lt;/mi&gt;&lt;mn&gt;0&lt;/mn&gt;&lt;/msub&gt;&lt;/msub&gt;&lt;/mtd&gt;&lt;/mtr&gt;&lt;mtr&gt;&lt;mtd&gt;&lt;msub&gt;&lt;mi&gt;𝛽&lt;/mi&gt;&lt;mn&gt;3&lt;/mn&gt;&lt;/msub&gt;&lt;/mtd&gt;&lt;mtd&gt;&lt;mo form=&quot;infix&quot;&gt;=&lt;/mo&gt;&lt;msup&gt;&lt;mo form=&quot;prefix&quot; lspace=&quot;0em&quot; rspace=&quot;0em&quot;&gt;d&lt;/mo&gt;&lt;mn&gt;3&lt;/mn&gt;&lt;/msup&gt;&lt;mfrac&gt;&lt;mi&gt;𝛽&lt;/mi&gt;&lt;mo form=&quot;prefix&quot; lspace=&quot;0em&quot; rspace=&quot;0em&quot;&gt;d&lt;/mo&gt;&lt;/mfrac&gt;&lt;msup&gt;&lt;mi&gt;𝜔&lt;/mi&gt;&lt;mn&gt;3&lt;/mn&gt;&lt;/msup&gt;&lt;mspace width=&quot;0.2222em&quot;/&gt;&lt;msub&gt;&lt;mo stretchy=&quot;false&quot;&gt;|&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;𝜔&lt;/mi&gt;&lt;mn&gt;0&lt;/mn&gt;&lt;/msub&gt;&lt;/msub&gt;&lt;/mtd&gt;&lt;/mtr&gt;&lt;/mtable&gt;&lt;/math&gt;&lt;/div&gt;&lt;h3&gt;Figures with captions&lt;/h3&gt;&lt;p&gt;Figures get numbered and captioned natively:&lt;/p&gt;&lt;figure&gt;&lt;p&gt;&lt;span style=&quot;display: inline-block&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;figcaption&gt;Figure 1: A placeholder panel — swap in a real plot with &lt;code&gt;#figure(image(&quot;gvd.png&quot;))&lt;/code&gt;.&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;Refer back to them as &lt;strong&gt;Fig. 1&lt;/strong&gt; in running text.&lt;/p&gt;</content:encoded><category>typst</category><category>meta</category><category>math</category></item><item><title>Is AI gonna replace you?</title><link>https://hitaishiv.com/blog/ai-gonna-replace-you/</link><guid isPermaLink="true">https://hitaishiv.com/blog/ai-gonna-replace-you/</guid><description>Adopt or be left behind: why the verdict on AI is simple, and what to do about it.</description><pubDate>Thu, 01 Aug 2024 00:00:00 GMT</pubDate><content:encoded>First, is it a question or a concern? If this is a concern to you, you have
come to the right place. As we are the so called &apos;smartest&apos; animal on the
planet, we tend to move fast towards the innovation of new technology and
research. But whenever a major change in the technology comes to existence,
and it feels like making home in our life, small kind of rejection is inbuilt
in human nature. It happened when Nicolaus Copernicus told &quot;earth is not at
the center of universe, we revolve around a star called sun&quot;. Some tried to
kill him too, but the truth is always true. The AI is going to stay whether
you like it or not. We have to accept and think how we can utilize it towards
including new technologies with our daily life. The world is not going to
wait until you adopt.

So, this is the thing. Either we have to adapt to the technology that we are
building and improve the skills needed to survive where any technology can&apos;t
replace you. As all the big minds say &quot;It&apos;s not all about the work, it&apos;s just
a skill issue&quot;. We need to do certain things to understand how these AI works
and incorporate with your daily works can make your life a lot easier
(sometimes). Research about specific technology, it might not be an AI, it
can be anything that helps in automate your work, give your efforts to learn
it. Be special in what you do and, show that you have something that others
don&apos;t. Then you gave no option to not accept you in any area you want to go.

Things that we have to do or should be aware of when it comes to AI are:

1. Keep your mind open to try out new things even when whatever you are doing
   works fine.
2. Explore how new technologies can help you in easing out things in your
   daily routine.
3. Aware of the current situation of the area you are working and what it
   takes to climb the ladder.
4. Try to reduce the friction in the work. Either by not procrastinating, or
   by making use of tools/software that makes your workflow better.

I cannot emphasize the changes when I switched from windows to Linux. It
impacted a lot in my personal workflow in speed and efficiency. I am faster
than ever before and becoming faster as time goes. I have been trying out new
AI models locally through ollama (because I don&apos;t want to pay a lot of money
and my data to companies). It has been quite nice to include these AI models
in my workflow. We can use it as a code generator inside a code editor like
Copilot. It is definitely better than using old Tabnine (now they also
integrated with AI) for code completion and generation. Finally, the verdict
is simple, ADOPT.

Who knows we might end up like cyberpunk world.</content:encoded><category>ai</category><category>career</category><category>workflow</category></item><item><title>Self-Hosting</title><link>https://hitaishiv.com/blog/self-hosting/</link><guid isPermaLink="true">https://hitaishiv.com/blog/self-hosting/</guid><description>Why I bought a domain on my own name, switched to Linux, and started running local AI. The story behind this website.</description><pubDate>Sat, 01 Jun 2024 00:00:00 GMT</pubDate><content:encoded>I always thought, I need a website. There was no time to create it between my
research and other learning activities. I knew little bit of HTML, CSS and
Python languages. So, this all website self-hosting came with the idea when I
needed a server to store my data from my research, my dad&apos;s accounting
database, my brother&apos;s medical notes and my girlfriend&apos;s photos (we all have
been there right).

So, this is the time of me completed 3 years of PhD, sitting in home planning
to write thesis with some research undergoing. For a year or so, I am really
into opensource and Linux platforms because of increase in all subscription
costs and increase in paid software. I don&apos;t like boundaries when I use a
software. Some features shouldn&apos;t be under a paywall. So, I converted. I made
a pledge to use Linux as much as I can. I can&apos;t let-go of windows because of
some particular software which only run on windows x86 platform that are
related to my research.

This Linux saga helped me to be a productive researcher. I started using self
hosted AI&apos;s through Ollama, and started using Arch Linux (b.t.w 😉) on my home
machine. I really wanted that option to run local AI&apos;s on my laptop to use
Fabric for my research and daily reads. I could have easily SSH into my
machine locally to use it. But what&apos;s fun in that. That would be easy. I
wanted to access through internet. So finally after long consideration of a
day or so, I went and bought a domain on my name.

I think, this will lead to endless possibilities for me to explore more and
learn complicated things. These are the things which keeps me going. Blogging
is also new to me. I have never wrote a line on a personal diary. All new
things…

Let&apos;s hope this will last long.</content:encoded><category>linux</category><category>self-hosting</category><category>open source</category></item></channel></rss>