<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>emre şahin's digital garden 🍃 - Go</title>
    <link>https://emresahin.net/tags/go/</link>
    <description>Posts in the Go tag</description>
    <language>en</language>
    <managingEditor>contact@emresahin.net (Emre Şahin)</managingEditor>
    <lastBuildDate>Tue, 15 Sep 2026 19:46:32 +0000</lastBuildDate>
    <atom:link href="https://emresahin.net/tags/go/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>bits 13</title>
      <published>2024-11-26T17:28:37+00:00</published>
      <updated>2024-11-26T17:28:37+00:00</updated>
      <author>Emre Şahin</author>
      <pubDate>Tue, 26 Nov 2024 17:28:37 +0000</pubDate>
      <link>https://emresahin.net/bits-13/</link>
      <guid isPermaLink="true">https://emresahin.net/bits-13/</guid>
      <description>I needed a Markdown server to preview my Zettelkasten notes on mobile. I tried installing Lanyon , but its installation instructions are outdated, and the project hasn’t been updated in seven years. I also looked at rustmark , but configuring it simply to list Markdown files felt like too much ef...</description>
      <category>publishing</category>
      <category>productivity</category>
      <category>markdown</category>
      <category>dufs</category>
      <category>zettelkasten</category>
      <category>self-hosting</category>
      <category>lanyon</category>
      <category>rustmark</category>
      <category>go</category>
      <content:encoded><![CDATA[<p>I needed a Markdown server to preview my <a href="https://zettelkasten.de/overview/">Zettelkasten</a> notes on mobile. I tried installing <a href="https://github.com/mkaz/lanyon">Lanyon</a>, but its installation instructions are outdated, and the project hasn’t been updated in seven years.</p>
<p>I also looked at <a href="https://docs.rs/crate/rustmark/latest">rustmark</a>, but configuring it simply to list Markdown files felt like too much effort.</p>
<p>Ultimately, I decided to use <a href="https://github.com/sigoden/dufs">dufs</a> and view the files as plain text. It supports basic file operations and WebDAV, which is more than sufficient for my needs.</p>]]></content:encoded>
    </item>
    <item>
      <title>TIL 10: Structs in Go</title>
      <published>2021-01-10T18:44:55+00:00</published>
      <updated>2021-01-10T18:44:55+00:00</updated>
      <author>Emre Şahin</author>
      <pubDate>Sun, 10 Jan 2021 18:44:55 +0000</pubDate>
      <link>https://emresahin.net/til-10/</link>
      <guid isPermaLink="true">https://emresahin.net/til-10/</guid>
      <description>Structs in Go In Go, it is possible to embed structs within other structs: type person struct { first string last string age int } type employee struct { person employee_id int salary int } We can instantiate the employee type as follows: e := employee{ person: person{ first: "Ali", last: "Yeşil"...</description>
      <category>Golang</category>
      <category>struct</category>
      <category>anonymous struct</category>
      <category>embedded struct</category>
      <category>Go</category>
      <category>programming</category>
      <content:encoded><![CDATA[<h2 id="structs-in-go">Structs in Go</h2>
<p>In Go, it is possible to embed structs within other structs:</p>
<pre><code class="language-go">type person struct {
    first string
    last string
    age   int
}

type employee struct {
    person
    employee_id int
    salary      int
}
</code></pre>
<p>We can instantiate the <code>employee</code> type as follows:</p>
<pre><code class="language-go">e := employee{
    person: person{
        first: "Ali",
        last:  "Yeşil",
        age:   33,
    },
    employee_id: 001,
    salary:      4500,
}
</code></pre>
<p>We can then access the fields of the embedded struct as if they were fields of the outer struct:</p>
<pre><code class="language-go">// e.first is a shorthand for e.person.first
fmt.Println(e.first) 
</code></pre>
<p>One can also use anonymous structs without explicitly defining a type:</p>
<pre><code class="language-go">z := struct {
    a string
    b int
}{
    a: "aaa",
    b: 123,
}
</code></pre>
<p>If these won’t be reused elsewhere, using anonymous structs can keep the code clean.</p>]]></content:encoded>
    </item>
    <item>
      <title>aerc and goneovim</title>
      <published>2020-05-12T18:47:03+00:00</published>
      <updated>2020-05-12T18:47:03+00:00</updated>
      <author>Emre Şahin</author>
      <pubDate>Tue, 12 May 2020 18:47:03 +0000</pubDate>
      <link>https://emresahin.net/aerc-and-goneovim--3894/</link>
      <guid isPermaLink="true">https://emresahin.net/aerc-and-goneovim--3894/</guid>
      <description>aerc I’ve started using aerc as my command-line email client. Initially, I used its archived GitHub repository, but I found the software to be buggy. Switching to the active repository provided me with the fastest IMAP client I’ve ever used. Its asynchronous operations make the workflow incredibl...</description>
      <category>development</category>
      <category>tools</category>
      <category>aerc</category>
      <category>neovim</category>
      <category>goneovim</category>
      <category>hugo</category>
      <category>miniflux</category>
      <category>Go</category>
      <category>golang</category>
      <category>productivity</category>
      <content:encoded><![CDATA[<h2 id="aerc">aerc</h2>
<p>I’ve started using <a href="https://aerc-mail.org/">aerc</a> as my command-line email client. Initially, I used its archived GitHub repository, but I found the software to be buggy. Switching to the active repository provided me with the fastest IMAP client I’ve ever used. Its asynchronous operations make the workflow incredibly smooth, as you don’t have to wait for the server after deleting or archiving each email.</p>
<h2 id="goneovim">goneovim</h2>
<p>I’ve also begun using a Neovim GUI called <a href="https://github.com/akiyosi/goneovim">goneovim</a>. I previously used <a href="https://github.com/daa84/neovim-gtk">Neovim-GTK</a>, but encountered issues—possibly due to Fira Code’s ligatures or other incompatibilities—that resulted in poor visuals and noticeable lag. I’m giving this new GUI a try, and so far, Fira Code and its ligatures are working perfectly.</p>
<p>Software written in Go is occupying more mindshare than I previously anticipated. Alongside <a href="https://gohugo.io">Hugo</a>, the <a href="https://miniflux.app/">Miniflux</a> self-hosted RSS client, and the <a href="https://github.com/vkuznecovas/mouthful">Mouthful</a> comment server, these tools demonstrate that Go has truly taken off for system and performance-related tasks.</p>]]></content:encoded>
    </item>
  </channel>
</rss>
