<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
	<title>George Bartolomey</title>
	<link>https://bh4.ru/</link>
	<description>Recent content on George Bartolomey</description>
	<generator>Hugo -- gohugo.io</generator>
	<language>en-us</language>
	<lastBuildDate>Tue, 18 Nov 2025 12:19:26 +0300</lastBuildDate>
    
        <atom:link href="https://bh4.ru/index.xml" rel="self" type="application/rss+xml" />
	
	
	<item>
		<title>Yggdrasil connectivity</title>
		<link>https://bh4.ru/ygg/</link>
		<pubDate>Sun, 08 Mar 2026 17:06:33 +0300</pubDate>
		
		<guid>https://bh4.ru/ygg/</guid>
		<description>&lt;p&gt;You&amp;rsquo;re able to &lt;a href=&#34;http://[201:b276:35f7:9f0e:2b00:9a25:70c1:8026]/&#34;&gt;visit this website&lt;/a&gt; through &lt;a href=&#34;https://yggdrasil-network.github.io/&#34;&gt;Yggdrasil&lt;/a&gt; mesh network.&lt;/p&gt;
&lt;h2 id=&#34;yggdrasil-links&#34;&gt;Yggdrasil links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://[21e:a51c:885b:7db0:166e:927:98cd:d186]/&#34;&gt;Web Directory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://[200:b48d:469e:c7c7:3e13:c41d:ba4d:d2b8]/&#34;&gt;Mimir search engine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://[200:8622:7a28:83ed:64b5:9254:8804:daa3]/mu/index.html&#34;&gt;Discussion thread about tasteful music&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;known-peers&#34;&gt;Known peers&lt;/h2&gt;
&lt;p&gt;Peers operated by me:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;FirstVDS ISP, Moscow, Russia 100 Mbps: &lt;code&gt;tls://gate.bh4.ru:7991&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Known peers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://publicpeer.ru.eu.org/&#34;&gt;Some reliable peer in Russia&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
	</item>
	
	<item>
		<title>Typst. A sophisticated view</title>
		<link>https://bh4.ru/typst-view/</link>
		<pubDate>Wed, 19 Nov 2025 11:40:11 +0300</pubDate>
		
		<guid>https://bh4.ru/typst-view/</guid>
		<description>&lt;p&gt;When I was writing a report for students about &lt;a href=&#34;https://www.latex-project.org/&#34;&gt;LaTeX&lt;/a&gt; typesetting system that I was asked to write,
I realized that it looks like a huge and clumsy monster to beginners.&lt;/p&gt;
&lt;p&gt;LaTeX is a typesetting system based on &lt;a href=&#34;https://tug.org/&#34;&gt;TeX&lt;/a&gt;.
LaTeX consists of many packages that create high-level markup language.
It is popular in scientific and academic circles.
It tries to separate a content and a presentation of documents (&lt;a href=&#34;https://en.wikipedia.org/wiki/WYSIWYM&#34;&gt;WYSIWYM paradigm&lt;/a&gt;) and provides powerful system for writing large writings
with complex cross-referencing, figures, bibliographies, etc. Many scientific journals accept manuscripts in LaTeX format.&lt;/p&gt;
&lt;p&gt;There are problems among these advantages. Every package in LaTeX has its own way to write same things, i.e. LaTeX lacks consistency and uniformity.&lt;/p&gt;
&lt;p&gt;For example, there are &lt;a href=&#34;https://en.wikibooks.org/wiki/LaTeX/Tables&#34;&gt;many ways&lt;/a&gt; to create tables:
&lt;code&gt;tabular&lt;/code&gt; (default one),
&lt;code&gt;tabular*&lt;/code&gt; (if you want to control width),
&lt;code&gt;tabularx&lt;/code&gt; (which adds new classifier &lt;code&gt;X&lt;/code&gt;, &lt;a href=&#34;https://tex.stackexchange.com/questions/236155/tabularx-and-multicolumn&#34;&gt;where you cannot just merge columns&lt;/a&gt;),
&lt;code&gt;tabu&lt;/code&gt; (like &lt;code&gt;tabularx&lt;/code&gt;, but abandoned),
&lt;code&gt;array&lt;/code&gt; and &lt;code&gt;booktabs&lt;/code&gt; (if you want &amp;ldquo;professional look&amp;rdquo; table),
&lt;code&gt;longtable&lt;/code&gt; (oh, you just wanted table across several pages?)&amp;hellip; I think this list is infinite, there isn&amp;rsquo;t the one perfect table solution.
Each of these packages has unique syntax,
every time you need to mix declarative (&lt;code&gt;\textbf{text}&lt;/code&gt;) with imperative style (&lt;code&gt;\Large text \normalsize&lt;/code&gt;).
To sum up, there are &lt;em&gt;many&lt;/em&gt; yaks to shave: you will spend a lot of time on recompiling &lt;del&gt;big C++ project&lt;/del&gt; your paper and on finding
that &lt;code&gt;hyperref&lt;/code&gt; package should be loaded earlier than &lt;code&gt;cleveref&lt;/code&gt;.
You can read about other problems of LaTeX here: &lt;a href=&#34;https://philipphagenlocher.de/post/is-latex-worth-it/&#34;&gt;&amp;ldquo;Is LaTeX worth it?&amp;rdquo;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So, Martin Haug and Laurenz Mädje have become tired and started development of &lt;a href=&#34;https://typst.app/&#34;&gt;Typst&lt;/a&gt; in 2019. Let me show you the beauty.&lt;/p&gt;
&lt;details&gt;
  &lt;summary&gt;Example document&lt;/summary&gt;
  







  &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-typst&#34; data-lang=&#34;typst&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;= My new paper
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Some words. Lorem ipsum.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;== Oh, this is a section
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;I will calculate $sin x$ using Taylor series.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Then,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  sin x approx sum_&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;^&lt;span style=&#34;color:#a6e22e&#34;&gt;n&lt;/span&gt; (&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;)^k &lt;span style=&#34;color:#a6e22e&#34;&gt;dot&lt;/span&gt; (x^(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;k&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;))&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;k&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;)&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;!&lt;/span&gt; ,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;but,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  sin x &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; sum_&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;^&lt;span style=&#34;color:#a6e22e&#34;&gt;infinity&lt;/span&gt; (&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;)^k &lt;span style=&#34;color:#a6e22e&#34;&gt;dot&lt;/span&gt; (x^(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;k&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;))&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;k&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;)&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;We can calculate this using recursive functions.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;#let&lt;/span&gt; taylorDepth &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;#let&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;sinTaylor&lt;/span&gt;(x, k: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;) &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; k &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; taylorDepth {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    calc.&lt;span style=&#34;color:#a6e22e&#34;&gt;pow&lt;/span&gt;(&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, k) &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; (calc.&lt;span style=&#34;color:#a6e22e&#34;&gt;pow&lt;/span&gt;(x, &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;k&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;)) &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/&lt;/span&gt; calc.&lt;span style=&#34;color:#a6e22e&#34;&gt;fact&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;k &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;) &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;sinTaylor&lt;/span&gt;(x, k: k &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  } &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt; { &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;#v&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;20&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;pt&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;#let&lt;/span&gt; coords &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;range&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;20&lt;/span&gt;).&lt;span style=&#34;color:#a6e22e&#34;&gt;map&lt;/span&gt;(x &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; calc.pi &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; x &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;).&lt;span style=&#34;color:#a6e22e&#34;&gt;map&lt;/span&gt;(x &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; (x, &lt;span style=&#34;color:#a6e22e&#34;&gt;sinTaylor&lt;/span&gt;(x)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;#figure&lt;/span&gt;(
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a6e22e&#34;&gt;curve&lt;/span&gt;(..coords.&lt;span style=&#34;color:#a6e22e&#34;&gt;map&lt;/span&gt;(x &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; curve.&lt;span style=&#34;color:#a6e22e&#34;&gt;line&lt;/span&gt;(x.&lt;span style=&#34;color:#a6e22e&#34;&gt;map&lt;/span&gt;(y &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; y &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;pt&lt;/span&gt;)))),
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  caption: [My own sin function plot]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;) &amp;lt;sinplot&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;This is a table that shows values that created @sinplot.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;#table&lt;/span&gt;(
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  columns: &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  table.header[x][$sin x$],
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  ..&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; (x,y) &lt;span style=&#34;color:#66d9ef&#34;&gt;in&lt;/span&gt; coords {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#a6e22e&#34;&gt;str&lt;/span&gt;(x), &lt;span style=&#34;color:#a6e22e&#34;&gt;str&lt;/span&gt;(y))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  } 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;=== Subsection
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- one
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- two
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  - sublist
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    + some other item
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    + auto numbering
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    + nice
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    + Привет! 你好 مرحبًا
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    + Unicode works out of the box!&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;embed src= &#34;example.pdf&#34; width= &#34;100%&#34; height= &#34;1000px&#34; type=&#34;application/pdf&#34; &gt;

&lt;/details&gt;
&lt;p&gt;In the example above, you can see the main features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Clear Markdown inspired markup&lt;/li&gt;
&lt;li&gt;Clear mathematics typesetting&lt;/li&gt;
&lt;li&gt;Unicode support&lt;/li&gt;
&lt;li&gt;Easy references without &lt;strong&gt;&lt;code&gt;??&lt;/code&gt;&lt;/strong&gt; signs, no double compilation required&lt;/li&gt;
&lt;li&gt;Unified functional style interface&lt;/li&gt;
&lt;li&gt;Easy to code, not just Turing-complete&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My computer compiled this document immediately unlike smaller TeX.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;% time typst compile example.typ
typst compile example.typ  0.27s user 0.12s system 87% cpu 0.444 total
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I know it&amp;rsquo;s a terrible benchmark. Just believe, the preview of the file updates &lt;em&gt;instantly&lt;/em&gt; on each keystroke.&lt;/p&gt;
&lt;p&gt;Typst is evolving at a great speed. I think, Typst may replace LaTeX for most writers in a couple of years.
Maybe, we should stop advising students to use LaTeX for writing essays and diploma works?&lt;/p&gt;
</description>
	</item>
	
	</channel>
</rss>
