<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Marek Šuppa</title><link>https://mareksuppa.com/</link><description>Personal site of Marek Šuppa — writing, teaching, and learning.</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>CC BY 4.0</copyright><lastBuildDate>Fri, 06 Mar 2026 12:33:16 +0000</lastBuildDate><atom:link href="https://mareksuppa.com/feed.xml" rel="self" type="application/rss+xml"/><item><title>Google Docs can be exported to Markdown via URL change</title><link>https://mareksuppa.com/til/google-docs-markdown-export/</link><pubDate>Mon, 16 Feb 2026 00:00:00 +0000</pubDate><guid>https://mareksuppa.com/til/google-docs-markdown-export/</guid><description>&lt;p&gt;Google Docs now supports exporting directly to Markdown by tweaking the URL. Take any Google Doc URL like:&lt;/p&gt;
&lt;div class="code-block-wrapper"&gt;&lt;button class="copy-code-btn" aria-label="Copy code to clipboard"&gt;Copy&lt;/button&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;https://docs.google.com/document/d/1mt8aYM88Jj5qkep1xYC5vj0wBlbX2u6gdxhf_puaiQI/edit?tab=t.0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Replace everything after the document ID with &lt;code&gt;export?format=md&lt;/code&gt;:&lt;/p&gt;
&lt;div class="code-block-wrapper"&gt;&lt;button class="copy-code-btn" aria-label="Copy code to clipboard"&gt;Copy&lt;/button&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;https://docs.google.com/document/d/1mt8aYM88Jj5qkep1xYC5vj0wBlbX2u6gdxhf_puaiQI/export?format=md&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;If you use &lt;code&gt;curl&lt;/code&gt; to test it out, you might get just a 307 redirect:&lt;/p&gt;
&lt;div class="code-block-wrapper has-lang"&gt;&lt;span class="code-lang-label"&gt;bash&lt;/span&gt;&lt;button class="copy-code-btn" aria-label="Copy code to clipboard"&gt;Copy&lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -I &lt;span style="color:#0a3069"&gt;&amp;#34;https://docs.google.com/document/d/1mt8aYM88Jj5qkep1xYC5vj0wBlbX2u6gdxhf_puaiQI/export?format=md&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;# HTTP/2 307&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;# location: https://doc-0s-...googleusercontent.com/...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Pass &lt;code&gt;-L&lt;/code&gt; to follow it and get the actual Markdown:&lt;/p&gt;</description></item><item><title>Hugo can merge multiple sections into one stream</title><link>https://mareksuppa.com/til/hugo-section-merge/</link><pubDate>Wed, 11 Feb 2026 00:00:00 +0000</pubDate><guid>https://mareksuppa.com/til/hugo-section-merge/</guid><description>&lt;p&gt;When building a Hugo site with multiple content types (blog, TIL, links), you can merge them into a single stream on the homepage using &lt;a href="https://gohugo.io/functions/collections/union/"&gt;&lt;code&gt;union&lt;/code&gt;&lt;/a&gt;:&lt;/p&gt;
&lt;div class="code-block-wrapper has-lang"&gt;&lt;span class="code-lang-label"&gt;go-html-template&lt;/span&gt;&lt;button class="copy-code-btn" aria-label="Copy code to clipboard"&gt;Copy&lt;/button&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-go-html-template" data-lang="go-html-template"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;{{&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#1f2328"&gt;$blog&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#0550ae"&gt;:=&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#1f2328"&gt;where&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#1f2328"&gt;site&lt;/span&gt;&lt;span style="color:#1f2328"&gt;.RegularPages&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;Section&amp;#34;&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;blog&amp;#34;&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#57606a"&gt;}}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;{{&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#1f2328"&gt;$links&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#0550ae"&gt;:=&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#1f2328"&gt;where&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#1f2328"&gt;site&lt;/span&gt;&lt;span style="color:#1f2328"&gt;.RegularPages&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;Section&amp;#34;&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;links&amp;#34;&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#57606a"&gt;}}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;{{&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#1f2328"&gt;$all&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#0550ae"&gt;:=&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#1f2328"&gt;union&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#1f2328"&gt;$blog&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#1f2328"&gt;$links&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#57606a"&gt;}}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;{{&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#cf222e"&gt;range&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#1f2328"&gt;sort&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#1f2328"&gt;$all&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;Date&amp;#34;&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;desc&amp;#34;&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#57606a"&gt;}}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ...
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;{{&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#cf222e"&gt;end&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#57606a"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;This is how sites like &lt;a href="https://simonwillison.net/"&gt;simonwillison.net&lt;/a&gt; create a unified content stream from diverse content types.&lt;/p&gt;</description></item><item><title>Write the Paper First</title><link>https://mareksuppa.com/links/write-the-paper-first/</link><pubDate>Tue, 10 Feb 2026 00:00:00 +0000</pubDate><guid>https://mareksuppa.com/links/write-the-paper-first/</guid><description>&lt;p&gt;&lt;a href="https://www.cs.jhu.edu/~jason/"&gt;Jason Eisner&lt;/a&gt;&amp;rsquo;s timeless advice on academic writing. The core idea is simple but very impactful: start writing the paper before you have all the results. Writing forces you to clarify your thinking, reveals gaps in your argument, and often redirects the research itself (e.g. what other experiments to do in order to arrive at a coherent story).&lt;/p&gt;</description></item><item><title>skLEP: A comprehensive Slovak NLU benchmark</title><link>https://mareksuppa.com/links/sklep-a-comprehensive-slovak-nlu-benchmark/</link><pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate><guid>https://mareksuppa.com/links/sklep-a-comprehensive-slovak-nlu-benchmark/</guid><description>&lt;p&gt;First comprehensive benchmark for evaluating Slovak natural language understanding. Presented at ACL 2025.&lt;/p&gt;</description></item><item><title>Five things I wish I knew the day I started University</title><link>https://mareksuppa.com/blog/five-things-at-uni/</link><pubDate>Wed, 10 Oct 2018 00:00:00 +0000</pubDate><guid>https://mareksuppa.com/blog/five-things-at-uni/</guid><description>Things I wish someone told me the day I become a university student (for the first time).</description></item><item><title>How to get the most out of RoboCup(Junior)</title><link>https://mareksuppa.com/blog/getting-most-out-of-rcj/</link><pubDate>Thu, 20 Jul 2017 00:00:00 +0000</pubDate><guid>https://mareksuppa.com/blog/getting-most-out-of-rcj/</guid><description>The international RoboCup(Junior) is a unique event. This post summarizes what I would want to know before I participated for the first time.</description></item><item><title>How I built an app for FirefoxOS</title><link>https://mareksuppa.com/blog/how-i-built-a-firefoxos-app/</link><pubDate>Mon, 23 Sep 2013 00:00:00 +0000</pubDate><guid>https://mareksuppa.com/blog/how-i-built-a-firefoxos-app/</guid><description>&amp;hellip; and nearly funded a company.</description></item><item><title>Lavabit</title><link>https://mareksuppa.com/blog/lavabit/</link><pubDate>Fri, 09 Aug 2013 00:00:00 +0000</pubDate><guid>https://mareksuppa.com/blog/lavabit/</guid><description>A few notes on a privacy focused email service and its shutdown.</description></item><item><title>Notes from Nederlands: take two</title><link>https://mareksuppa.com/blog/notes-from-nederlands-take-two/</link><pubDate>Wed, 10 Jul 2013 00:00:00 +0000</pubDate><guid>https://mareksuppa.com/blog/notes-from-nederlands-take-two/</guid><description>Been there, seen that. Nederlands for the first time.</description></item><item><title>Notes from Belgium</title><link>https://mareksuppa.com/blog/notes-from-belgium/</link><pubDate>Sat, 06 Jul 2013 00:00:00 +0000</pubDate><guid>https://mareksuppa.com/blog/notes-from-belgium/</guid><description>Not being somewhere for the first time also has its bright sides. Especially for Belgium.</description></item><item><title>Notes from Nederlands</title><link>https://mareksuppa.com/blog/notes-from-nederlands/</link><pubDate>Sat, 22 Jun 2013 00:00:00 +0000</pubDate><guid>https://mareksuppa.com/blog/notes-from-nederlands/</guid><description>Been there, seen that. Nederlands for the first time.</description></item><item><title>A tale of a physicist and a craftsman</title><link>https://mareksuppa.com/blog/physicist-and-craftsman/</link><pubDate>Thu, 30 May 2013 00:00:00 +0000</pubDate><guid>https://mareksuppa.com/blog/physicist-and-craftsman/</guid><description>Time is the only limit when a physicist meets a craftsman.</description></item><item><title>Writing a blog</title><link>https://mareksuppa.com/blog/blogging/</link><pubDate>Mon, 01 Apr 2013 00:00:00 +0000</pubDate><guid>https://mareksuppa.com/blog/blogging/</guid><description>Those who blog often say that others should start too. Unfortunately, they don&amp;rsquo;t say when.</description></item></channel></rss>