main
1<!DOCTYPE html>
2<html lang="en">
3<head>
4<!-- Sep 03, 2024 -->
5<meta charset="utf-8" />
6<meta name="viewport" content="width=device-width, initial-scale=1" />
7<title>Go</title>
8<meta name="author" content="Vincent Demeester" />
9<meta name="generator" content="Org Mode" />
10<link rel='icon' type='image/x-icon' href='/images/favicon.ico'/>
11<meta name='viewport' content='width=device-width, initial-scale=1'>
12<link rel='stylesheet' href='/css/new.css' type='text/css'/>
13<link rel='stylesheet' href='/css/syntax.css' type='text/css'/>
14<link href='/index.xml' rel='alternate' type='application/rss+xml' title='Vincent Demeester' />
15</head>
16<body>
17<main id="content" class="content">
18<header>
19<h1 class="title">Go</h1>
20<p class="subtitle" role="doc-subtitle">an open source programming language that makes it easy to build simple, reliable, and efficient software.</p>
21</header><section id="outline-container-Design%20docs" class="outline-2">
22<h2 id="Design%20docs">Design docs</h2>
23<div class="outline-text-2" id="text-Design%20docs">
24<p>
25Here is a list of interesting design docs around Go.
26</p>
27</div>
28<div id="outline-container-Generics" class="outline-3">
29<h3 id="Generics">Generics</h3>
30<div class="outline-text-3" id="text-Generics">
31<ul class="org-ul">
32<li><a href="generics_aren_t_ready_for_go_drew_devault_s_blog.html">Generics aren’t ready for Go | Drew DeVault’s Blog</a></li>
33<li><a href="https://go.googlesource.com/proposal/+/refs/heads/master/design/go2draft-type-parameters.md">Type Parameters - Draft Design</a>
34<ul class="org-ul">
35<li><a href="https://rakyll.org/generics-proposal/">Few things on generics</a> Rakyll’s take on the design</li>
36</ul></li>
37</ul>
38</div>
39</div>
40</section>
41<section id="outline-container-Links" class="outline-2">
42<h2 id="Links">Links</h2>
43<div class="outline-text-2" id="text-Links">
44</div>
45<div id="outline-container-%5B%5Bhttps%3A%2F%2Frakyll.org%2Finlined-defers%2F%5D%5BInlined%20defers%20in%20Go%20%C2%B7%20Go%2C%20the%20unwritten%20parts%5D%5D" class="outline-3">
46<h3 id="%5B%5Bhttps%3A%2F%2Frakyll.org%2Finlined-defers%2F%5D%5BInlined%20defers%20in%20Go%20%C2%B7%20Go%2C%20the%20unwritten%20parts%5D%5D"><a href="https://rakyll.org/inlined-defers/">Inlined defers in Go · Go, the unwritten parts</a>   <span class="tag"><span class="go">go</span></span></h3>
47<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Frakyll.org%2Finlined-defers%2F%5D%5BInlined%20defers%20in%20Go%20%C2%B7%20Go%2C%20the%20unwritten%20parts%5D%5D">
48<p>
49<span class="timestamp-wrapper"><span class="timestamp">[2020-06-08 Mon 10:43]</span></span>
50</p>
51</div>
52</div>
53<div id="outline-container-%5B%5Bhttps%3A%2F%2F0x46.net%2Fthoughts%2F2018%2F12%2F29%2Fgo-libraries%2F%5D%5BStop%20writing%20broken%20Go%20libraries%5D%5D" class="outline-3">
54<h3 id="%5B%5Bhttps%3A%2F%2F0x46.net%2Fthoughts%2F2018%2F12%2F29%2Fgo-libraries%2F%5D%5BStop%20writing%20broken%20Go%20libraries%5D%5D"><a href="https://0x46.net/thoughts/2018/12/29/go-libraries/">Stop writing broken Go libraries</a></h3>
55<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2F0x46.net%2Fthoughts%2F2018%2F12%2F29%2Fgo-libraries%2F%5D%5BStop%20writing%20broken%20Go%20libraries%5D%5D">
56<p>
57<span class="timestamp-wrapper"><span class="timestamp">[2020-05-04 Mon 20:33]</span></span>
58</p>
59</div>
60</div>
61<div id="outline-container-%5B%5Bhttps%3A%2F%2Fwww.arp242.net%2Fgo-last-resort.html%5D%5BGo%E2%80%99s%20features%20of%20last%20resort%5D%5D" class="outline-3">
62<h3 id="%5B%5Bhttps%3A%2F%2Fwww.arp242.net%2Fgo-last-resort.html%5D%5BGo%E2%80%99s%20features%20of%20last%20resort%5D%5D"><a href="https://www.arp242.net/go-last-resort.html">Go’s features of last resort</a></h3>
63<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fwww.arp242.net%2Fgo-last-resort.html%5D%5BGo%E2%80%99s%20features%20of%20last%20resort%5D%5D">
64<p>
65<span class="timestamp-wrapper"><span class="timestamp">[2019-11-27 Wed 14:54]</span></span>
66</p>
67</div>
68</div>
69<div id="outline-container-%5B%5Bhttps%3A%2F%2Fwww.bartfokker.nl%2Fposts%2Fdecorators%2F%5D%5BClean%20code%20using%20decorators%20%3A%3A%20Programming%20blog%20%E2%80%94%20Programming%20blog%5D%5D" class="outline-3">
70<h3 id="%5B%5Bhttps%3A%2F%2Fwww.bartfokker.nl%2Fposts%2Fdecorators%2F%5D%5BClean%20code%20using%20decorators%20%3A%3A%20Programming%20blog%20%E2%80%94%20Programming%20blog%5D%5D"><a href="https://www.bartfokker.nl/posts/decorators/">Clean code using decorators :: Programming blog — Programming blog</a></h3>
71</div>
72
73<div id="outline-container-%5B%5Bhttps%3A%2F%2Fdave.cheney.net%2Fpractical-go%2Fpresentations%2Fqcon-china.html%5D%5BPractical%20Go%3A%20Real%20world%20advice%20for%20writing%20maintainable%20Go%20programs%5D%5D" class="outline-3">
74<h3 id="%5B%5Bhttps%3A%2F%2Fdave.cheney.net%2Fpractical-go%2Fpresentations%2Fqcon-china.html%5D%5BPractical%20Go%3A%20Real%20world%20advice%20for%20writing%20maintainable%20Go%20programs%5D%5D"><a href="https://dave.cheney.net/practical-go/presentations/qcon-china.html">Practical Go: Real world advice for writing maintainable Go programs</a></h3>
75</div>
76
77<div id="outline-container-%5B%5Bhttps%3A%2F%2Fgithub.com%2Fundefinedlabs%2Fgo-integration%2Fblob%2Fmaster%2Fexample%2Fexample_test.go%5D%5Bgo-integration%2Fexample_test.go%20at%20master%20%C2%B7%20undefinedlabs%2Fgo-integration%5D%5D" class="outline-3">
78<h3 id="%5B%5Bhttps%3A%2F%2Fgithub.com%2Fundefinedlabs%2Fgo-integration%2Fblob%2Fmaster%2Fexample%2Fexample_test.go%5D%5Bgo-integration%2Fexample_test.go%20at%20master%20%C2%B7%20undefinedlabs%2Fgo-integration%5D%5D"><a href="https://github.com/undefinedlabs/go-integration/blob/master/example/example_test.go">go-integration/example<sub>test.go</sub> at master · undefinedlabs/go-integration</a>   <span class="tag"><span class="test">test</span></span></h3>
79<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fgithub.com%2Fundefinedlabs%2Fgo-integration%2Fblob%2Fmaster%2Fexample%2Fexample_test.go%5D%5Bgo-integration%2Fexample_test.go%20at%20master%20%C2%B7%20undefinedlabs%2Fgo-integration%5D%5D">
80<p>
81<span class="timestamp-wrapper"><span class="timestamp">[2019-11-27 Wed 15:56]</span></span>
82</p>
83
84<p>
85An example of transparent integration with containers on tests.
86</p>
87</div>
88</div>
89<div id="outline-container-%5B%5Bhttps%3A%2F%2Fwww.manifold.co%2Fblog%2Fhow-go-interfaces-can-facilitate-switching-external-services-619cc478e20a%5D%5BHow%20Go%20interfaces%20can%20facilitate%20switching%20external%20services%20-%20Manifold%5D%5D" class="outline-3">
90<h3 id="%5B%5Bhttps%3A%2F%2Fwww.manifold.co%2Fblog%2Fhow-go-interfaces-can-facilitate-switching-external-services-619cc478e20a%5D%5BHow%20Go%20interfaces%20can%20facilitate%20switching%20external%20services%20-%20Manifold%5D%5D"><a href="https://www.manifold.co/blog/how-go-interfaces-can-facilitate-switching-external-services-619cc478e20a">How Go interfaces can facilitate switching external services - Manifold</a></h3>
91<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fwww.manifold.co%2Fblog%2Fhow-go-interfaces-can-facilitate-switching-external-services-619cc478e20a%5D%5BHow%20Go%20interfaces%20can%20facilitate%20switching%20external%20services%20-%20Manifold%5D%5D">
92<p>
93<span class="timestamp-wrapper"><span class="timestamp">[2019-03-27 Wed 18:18]</span></span>
94</p>
95</div>
96</div>
97<div id="outline-container-%5B%5Bhttps%3A%2F%2Fwww.alexedwards.net%2Fblog%2Fan-overview-of-go-tooling%5D%5BAn%20Overview%20of%20Go%27s%20Tooling%20-%20Alex%20Edwards%5D%5D" class="outline-3">
98<h3 id="%5B%5Bhttps%3A%2F%2Fwww.alexedwards.net%2Fblog%2Fan-overview-of-go-tooling%5D%5BAn%20Overview%20of%20Go%27s%20Tooling%20-%20Alex%20Edwards%5D%5D"><a href="https://www.alexedwards.net/blog/an-overview-of-go-tooling">An Overview of Go’s Tooling - Alex Edwards</a>   <span class="tag"><span class="tools">tools</span></span></h3>
99<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fwww.alexedwards.net%2Fblog%2Fan-overview-of-go-tooling%5D%5BAn%20Overview%20of%20Go%27s%20Tooling%20-%20Alex%20Edwards%5D%5D">
100<p>
101<span class="timestamp-wrapper"><span class="timestamp">[2019-04-17 Wed 14:17]</span></span>
102</p>
103</div>
104</div>
105<div id="outline-container-%5B%5Bhttps%3A%2F%2Fpeter.bourgon.org%2Fblog%2F2019%2F04%2F24%2Fgo-naming-tips.html%5D%5BPeter%20Bourgon%20%C2%B7%20Go%20naming%20tips%5D%5D" class="outline-3">
106<h3 id="%5B%5Bhttps%3A%2F%2Fpeter.bourgon.org%2Fblog%2F2019%2F04%2F24%2Fgo-naming-tips.html%5D%5BPeter%20Bourgon%20%C2%B7%20Go%20naming%20tips%5D%5D"><a href="https://peter.bourgon.org/blog/2019/04/24/go-naming-tips.html">Peter Bourgon · Go naming tips</a></h3>
107<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fpeter.bourgon.org%2Fblog%2F2019%2F04%2F24%2Fgo-naming-tips.html%5D%5BPeter%20Bourgon%20%C2%B7%20Go%20naming%20tips%5D%5D">
108<p>
109<span class="timestamp-wrapper"><span class="timestamp">[2019-04-24 Wed 16:17]</span></span>
110</p>
111</div>
112</div>
113<div id="outline-container-%5B%5Bhttps%3A%2F%2Fnpf.io%2F2019%2F06%2Fdo-or-do-not%2F%5D%5BDo%20or%20Do%20Not%20%C2%B7%20npf.io%5D%5D" class="outline-3">
114<h3 id="%5B%5Bhttps%3A%2F%2Fnpf.io%2F2019%2F06%2Fdo-or-do-not%2F%5D%5BDo%20or%20Do%20Not%20%C2%B7%20npf.io%5D%5D"><a href="https://npf.io/2019/06/do-or-do-not/">Do or Do Not · npf.io</a></h3>
115<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fnpf.io%2F2019%2F06%2Fdo-or-do-not%2F%5D%5BDo%20or%20Do%20Not%20%C2%B7%20npf.io%5D%5D">
116<p>
117<span class="timestamp-wrapper"><span class="timestamp">[2019-06-21 Fri 18:16]</span></span>
118</p>
119</div>
120</div>
121<div id="outline-container-%5B%5Bhttps%3A%2F%2Fkristoff.it%2Fblog%2Fwhy-go-and-not-rust%2F%5D%5BWhy%20Go%20and%20not%20Rust%3F%20%7C%20Loris%20Cro%27s%20Personal%20Blog%5D%5D" class="outline-3">
122<h3 id="%5B%5Bhttps%3A%2F%2Fkristoff.it%2Fblog%2Fwhy-go-and-not-rust%2F%5D%5BWhy%20Go%20and%20not%20Rust%3F%20%7C%20Loris%20Cro%27s%20Personal%20Blog%5D%5D"><a href="https://kristoff.it/blog/why-go-and-not-rust/">Why Go and not Rust? | Loris Cro’s Personal Blog</a>   <span class="tag"><span class="rust">rust</span></span></h3>
123<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fkristoff.it%2Fblog%2Fwhy-go-and-not-rust%2F%5D%5BWhy%20Go%20and%20not%20Rust%3F%20%7C%20Loris%20Cro%27s%20Personal%20Blog%5D%5D">
124<p>
125<span class="timestamp-wrapper"><span class="timestamp">[2019-09-17 Tue 11:38]</span></span>
126</p>
127</div>
128</div>
129<div id="outline-container-%5B%5Bhttps%3A%2F%2Fphilpearl.github.io%2Fpost%2Fbad_go_slice_of_pointers%2F%3Futm_campaign%3DThe%252520Go%252520Gazette%26utm_medium%3Demail%26utm_source%3DRevue%252520newsletter%5D%5BBad%20Go%3A%20slices%20of%20pointers%20%C2%B7%20Phil%20Pearl%27s%20Blog%5D%5D" class="outline-3">
130<h3 id="%5B%5Bhttps%3A%2F%2Fphilpearl.github.io%2Fpost%2Fbad_go_slice_of_pointers%2F%3Futm_campaign%3DThe%252520Go%252520Gazette%26utm_medium%3Demail%26utm_source%3DRevue%252520newsletter%5D%5BBad%20Go%3A%20slices%20of%20pointers%20%C2%B7%20Phil%20Pearl%27s%20Blog%5D%5D"><a href="https://philpearl.github.io/post/bad_go_slice_of_pointers/?utm_campaign=The%2520Go%2520Gazette&utm_medium=email&utm_source=Revue%2520newsletter">Bad Go: slices of pointers · Phil Pearl’s Blog</a></h3>
131<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fphilpearl.github.io%2Fpost%2Fbad_go_slice_of_pointers%2F%3Futm_campaign%3DThe%252520Go%252520Gazette%26utm_medium%3Demail%26utm_source%3DRevue%252520newsletter%5D%5BBad%20Go%3A%20slices%20of%20pointers%20%C2%B7%20Phil%20Pearl%27s%20Blog%5D%5D">
132<p>
133<span class="timestamp-wrapper"><span class="timestamp">[2019-09-17 Tue 10:40]</span></span>
134</p>
135</div>
136</div>
137<div id="outline-container-%5B%5Bhttps%3A%2F%2Fdivan.dev%2Fposts%2Fgopath%2F%5D%5BI%20still%20%E2%9D%A4%EF%B8%8F%20you%2C%20GOPATH%20%C2%B7%20divan%27s%20blog%5D%5D" class="outline-3">
138<h3 id="%5B%5Bhttps%3A%2F%2Fdivan.dev%2Fposts%2Fgopath%2F%5D%5BI%20still%20%E2%9D%A4%EF%B8%8F%20you%2C%20GOPATH%20%C2%B7%20divan%27s%20blog%5D%5D"><a href="https://divan.dev/posts/gopath/">I still ❤️ you, GOPATH · divan’s blog</a>   <span class="tag"><span class="go">go</span></span></h3>
139<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fdivan.dev%2Fposts%2Fgopath%2F%5D%5BI%20still%20%E2%9D%A4%EF%B8%8F%20you%2C%20GOPATH%20%C2%B7%20divan%27s%20blog%5D%5D">
140<p>
141<span class="timestamp-wrapper"><span class="timestamp">[2019-10-01 Tue 17:55]</span></span>
142</p>
143</div>
144</div>
145<div id="outline-container-%5B%5Bhttps%3A%2F%2Fblog.golang.org%2Fpublishing-go-modules%5D%5BPublishing%20Go%20Modules%20-%20The%20Go%20Blog%5D%5D" class="outline-3">
146<h3 id="%5B%5Bhttps%3A%2F%2Fblog.golang.org%2Fpublishing-go-modules%5D%5BPublishing%20Go%20Modules%20-%20The%20Go%20Blog%5D%5D"><a href="https://blog.golang.org/publishing-go-modules">Publishing Go Modules - The Go Blog</a>   <span class="tag"><span class="modules">modules</span></span></h3>
147<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fblog.golang.org%2Fpublishing-go-modules%5D%5BPublishing%20Go%20Modules%20-%20The%20Go%20Blog%5D%5D">
148<p>
149<span class="timestamp-wrapper"><span class="timestamp">[2019-11-05 Tue 15:02]</span></span>
150</p>
151</div>
152</div>
153<div id="outline-container-%5B%5Bhttps%3A%2F%2Frakhim.org%2F2019%2F12%2Fsummary-of-concurrency-is-not-parallellism-a-talk-by-rob-pike%2F%5D%5BSummary%20of%20Concurrency%20Is%20Not%20Parallellism%2C%20a%20talk%20by%20Rob%20Pike%20-%20Rakhim.org%5D%5D" class="outline-3">
154<h3 id="%5B%5Bhttps%3A%2F%2Frakhim.org%2F2019%2F12%2Fsummary-of-concurrency-is-not-parallellism-a-talk-by-rob-pike%2F%5D%5BSummary%20of%20Concurrency%20Is%20Not%20Parallellism%2C%20a%20talk%20by%20Rob%20Pike%20-%20Rakhim.org%5D%5D"><span class="todo TODO">TODO</span> <a href="https://rakhim.org/2019/12/summary-of-concurrency-is-not-parallellism-a-talk-by-rob-pike/">Summary of Concurrency Is Not Parallellism, a talk by Rob Pike - Rakhim.org</a></h3>
155<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Frakhim.org%2F2019%2F12%2Fsummary-of-concurrency-is-not-parallellism-a-talk-by-rob-pike%2F%5D%5BSummary%20of%20Concurrency%20Is%20Not%20Parallellism%2C%20a%20talk%20by%20Rob%20Pike%20-%20Rakhim.org%5D%5D">
156<p>
157<span class="timestamp-wrapper"><span class="timestamp">[2019-12-23 Mon 17:21]</span></span>
158</p>
159</div>
160</div>
161<div id="outline-container-%5B%5Bhttps%3A%2F%2Fpace.dev%2Fblog%2F2020%2F02%2F13%2Fbatching-operations-in-go-by-mat-ryer%5D%5BBatching%20operations%20in%20Go%20by%20Mat%20Ryer%20-%20PACE.%5D%5D" class="outline-3">
162<h3 id="%5B%5Bhttps%3A%2F%2Fpace.dev%2Fblog%2F2020%2F02%2F13%2Fbatching-operations-in-go-by-mat-ryer%5D%5BBatching%20operations%20in%20Go%20by%20Mat%20Ryer%20-%20PACE.%5D%5D"><span class="todo TODO">TODO</span> <a href="https://pace.dev/blog/2020/02/13/batching-operations-in-go-by-mat-ryer">Batching operations in Go by Mat Ryer - PACE.</a></h3>
163<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fpace.dev%2Fblog%2F2020%2F02%2F13%2Fbatching-operations-in-go-by-mat-ryer%5D%5BBatching%20operations%20in%20Go%20by%20Mat%20Ryer%20-%20PACE.%5D%5D">
164<p>
165<span class="timestamp-wrapper"><span class="timestamp">[2020-03-19 Thu 21:05]</span></span>
166</p>
167</div>
168</div>
169<div id="outline-container-%5B%5Bhttps%3A%2F%2Fpace.dev%2Fblog%2F2020%2F02%2F12%2Fwhy-you-shouldnt-use-func-main-in-golang-by-mat-ryer%5D%5BWhy%20you%20shouldn%27t%20use%20func%20main%20in%20Go%20by%20Mat%20Ryer%20-%20PACE.%5D%5D" class="outline-3">
170<h3 id="%5B%5Bhttps%3A%2F%2Fpace.dev%2Fblog%2F2020%2F02%2F12%2Fwhy-you-shouldnt-use-func-main-in-golang-by-mat-ryer%5D%5BWhy%20you%20shouldn%27t%20use%20func%20main%20in%20Go%20by%20Mat%20Ryer%20-%20PACE.%5D%5D"><span class="todo TODO">TODO</span> <a href="https://pace.dev/blog/2020/02/12/why-you-shouldnt-use-func-main-in-golang-by-mat-ryer">Why you shouldn’t use func main in Go by Mat Ryer - PACE.</a></h3>
171<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fpace.dev%2Fblog%2F2020%2F02%2F12%2Fwhy-you-shouldnt-use-func-main-in-golang-by-mat-ryer%5D%5BWhy%20you%20shouldn%27t%20use%20func%20main%20in%20Go%20by%20Mat%20Ryer%20-%20PACE.%5D%5D">
172<p>
173<span class="timestamp-wrapper"><span class="timestamp">[2020-03-19 Thu 21:05]</span></span>
174</p>
175</div>
176</div>
177<div id="outline-container-%5B%5Bhttps%3A%2F%2Fwww.arp242.net%2Fstatic-go.html%5D%5BStatically%20compiling%20Go%20programs%5D%5D" class="outline-3">
178<h3 id="%5B%5Bhttps%3A%2F%2Fwww.arp242.net%2Fstatic-go.html%5D%5BStatically%20compiling%20Go%20programs%5D%5D"><span class="todo TODO">TODO</span> <a href="https://www.arp242.net/static-go.html">Statically compiling Go programs</a>   <span class="tag"><span class="compile">compile</span> <span class="go">go</span></span></h3>
179<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fwww.arp242.net%2Fstatic-go.html%5D%5BStatically%20compiling%20Go%20programs%5D%5D">
180<p>
181<span class="timestamp-wrapper"><span class="timestamp">[2020-04-14 Tue 15:13]</span></span>
182</p>
183</div>
184</div>
185<div id="outline-container-%5B%5Bhttps%3A%2F%2Fpace.dev%2Fblog%2F2020%2F02%2F03%2Fcontext-aware-ioreader-for-golang-by-mat-ryer.html%5D%5BContext-aware%20io.Reader%20for%20Go%20by%20Mat%20Ryer%20%2B%20David%20Hernandez%20-%20PACE.%5D%5D" class="outline-3">
186<h3 id="%5B%5Bhttps%3A%2F%2Fpace.dev%2Fblog%2F2020%2F02%2F03%2Fcontext-aware-ioreader-for-golang-by-mat-ryer.html%5D%5BContext-aware%20io.Reader%20for%20Go%20by%20Mat%20Ryer%20%2B%20David%20Hernandez%20-%20PACE.%5D%5D"><span class="todo TODO">TODO</span> <a href="https://pace.dev/blog/2020/02/03/context-aware-ioreader-for-golang-by-mat-ryer.html">Context-aware io.Reader for Go by Mat Ryer + David Hernandez - PACE.</a></h3>
187<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fpace.dev%2Fblog%2F2020%2F02%2F03%2Fcontext-aware-ioreader-for-golang-by-mat-ryer.html%5D%5BContext-aware%20io.Reader%20for%20Go%20by%20Mat%20Ryer%20%2B%20David%20Hernandez%20-%20PACE.%5D%5D">
188<p>
189<span class="timestamp-wrapper"><span class="timestamp">[2020-04-01 Wed 17:28]</span></span>
190</p>
191</div>
192</div>
193<div id="outline-container-%5B%5Bhttps%3A%2F%2Fblog.sbstp.ca%2Fgo-quirks%2F%5D%5Bsbstp%27s%20blog%20%E2%80%94%20go%20quirks%5D%5D" class="outline-3">
194<h3 id="%5B%5Bhttps%3A%2F%2Fblog.sbstp.ca%2Fgo-quirks%2F%5D%5Bsbstp%27s%20blog%20%E2%80%94%20go%20quirks%5D%5D"><span class="todo TODO">TODO</span> <a href="https://blog.sbstp.ca/go-quirks/">sbstp’s blog — go quirks</a></h3>
195<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fblog.sbstp.ca%2Fgo-quirks%2F%5D%5Bsbstp%27s%20blog%20%E2%80%94%20go%20quirks%5D%5D">
196<p>
197<span class="timestamp-wrapper"><span class="timestamp">[2020-03-29 Sun 11:48]</span></span>
198</p>
199</div>
200</div>
201<div id="outline-container-%5B%5Bhttps%3A%2F%2Fgithub.com%2Fstretchr%2Ftestify%2Fpull%2F933%2Ffiles%5D%5BAvoid%20calling%20Helper%28%29%20on%20the%20happy%20path%20by%20bboreham%20%C2%B7%20Pull%20Request%20%23933%20%C2%B7%20stretchr%2Ftestify%5D%5D" class="outline-3">
202<h3 id="%5B%5Bhttps%3A%2F%2Fgithub.com%2Fstretchr%2Ftestify%2Fpull%2F933%2Ffiles%5D%5BAvoid%20calling%20Helper%28%29%20on%20the%20happy%20path%20by%20bboreham%20%C2%B7%20Pull%20Request%20%23933%20%C2%B7%20stretchr%2Ftestify%5D%5D"><span class="todo TODO">TODO</span> <a href="https://github.com/stretchr/testify/pull/933/files">Avoid calling Helper() on the happy path by bboreham · Pull Request #933 · stretchr/testify</a>   <span class="tag"><span class="go">go</span></span></h3>
203<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fgithub.com%2Fstretchr%2Ftestify%2Fpull%2F933%2Ffiles%5D%5BAvoid%20calling%20Helper%28%29%20on%20the%20happy%20path%20by%20bboreham%20%C2%B7%20Pull%20Request%20%23933%20%C2%B7%20stretchr%2Ftestify%5D%5D">
204<p>
205<span class="timestamp-wrapper"><span class="timestamp">[2020-04-27 Mon 15:23]</span></span>
206</p>
207
208<p>
209We should do the same for gotestyourself
210</p>
211</div>
212</div>
213<div id="outline-container-%5B%5Bhttps%3A%2F%2Fgithub.com%2Fgo-noisegate%2Fnoisegate%5D%5Bgo-noisegate%2Fnoisegate%3A%20Noise%20Gate%3A%20Golang%20test%20runner%20to%20get%20faster%20test%20results%5D%5D" class="outline-3">
214<h3 id="%5B%5Bhttps%3A%2F%2Fgithub.com%2Fgo-noisegate%2Fnoisegate%5D%5Bgo-noisegate%2Fnoisegate%3A%20Noise%20Gate%3A%20Golang%20test%20runner%20to%20get%20faster%20test%20results%5D%5D"><span class="todo TODO">TODO</span> <a href="https://github.com/go-noisegate/noisegate">go-noisegate/noisegate: Noise Gate: Golang test runner to get faster test results</a>   <span class="tag"><span class="go">go</span></span></h3>
215<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fgithub.com%2Fgo-noisegate%2Fnoisegate%5D%5Bgo-noisegate%2Fnoisegate%3A%20Noise%20Gate%3A%20Golang%20test%20runner%20to%20get%20faster%20test%20results%5D%5D">
216<p>
217<span class="timestamp-wrapper"><span class="timestamp">[2020-05-05 Tue 10:57]</span></span>
218</p>
219</div>
220<div id="outline-container-%5B%5Bhttps%3A%2F%2Fgithub.com%2Fgo-noisegate%2Fgo-noisegate.el%5D%5Bgo-noisegate%2Fgo-noisegate.el%3A%20Emacs%20plugin%20for%20Noise%20Gate%5D%5D" class="outline-4">
221<h4 id="%5B%5Bhttps%3A%2F%2Fgithub.com%2Fgo-noisegate%2Fgo-noisegate.el%5D%5Bgo-noisegate%2Fgo-noisegate.el%3A%20Emacs%20plugin%20for%20Noise%20Gate%5D%5D"><a href="https://github.com/go-noisegate/go-noisegate.el">go-noisegate/go-noisegate.el: Emacs plugin for Noise Gate</a>   <span class="tag"><span class="emacs">emacs</span></span></h4>
222<div class="outline-text-4" id="text-%5B%5Bhttps%3A%2F%2Fgithub.com%2Fgo-noisegate%2Fgo-noisegate.el%5D%5Bgo-noisegate%2Fgo-noisegate.el%3A%20Emacs%20plugin%20for%20Noise%20Gate%5D%5D">
223<p>
224<span class="timestamp-wrapper"><span class="timestamp">[2020-05-05 Tue 10:57]</span></span>
225</p>
226</div>
227</div>
228</div>
229<div id="outline-container-%5B%5Bhttps%3A%2F%2Forndorffgrant.com%2Fframework-agnostic-go-handlers%2F%5D%5BFramework%20Agnostic%20HTTP%20Endpoint%20Go%20Handlers%5D%5D" class="outline-3">
230<h3 id="%5B%5Bhttps%3A%2F%2Forndorffgrant.com%2Fframework-agnostic-go-handlers%2F%5D%5BFramework%20Agnostic%20HTTP%20Endpoint%20Go%20Handlers%5D%5D"><span class="todo TODO">TODO</span> <a href="https://orndorffgrant.com/framework-agnostic-go-handlers/">Framework Agnostic HTTP Endpoint Go Handlers</a>   <span class="tag"><span class="go">go</span></span></h3>
231<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Forndorffgrant.com%2Fframework-agnostic-go-handlers%2F%5D%5BFramework%20Agnostic%20HTTP%20Endpoint%20Go%20Handlers%5D%5D">
232<p>
233<span class="timestamp-wrapper"><span class="timestamp">[2020-05-25 Mon 11:07]</span></span>
234</p>
235</div>
236</div>
237<div id="outline-container-%5B%5Bhttps%3A%2F%2Fgo.googlesource.com%2Fproposal%2F%2B%2Frefs%2Fheads%2Fmaster%2Fdesign%2Fgo2draft-type-parameters.md%5D%5BType%20Parameters%20-%20Draft%20Design%5D%5D" class="outline-3">
238<h3 id="%5B%5Bhttps%3A%2F%2Fgo.googlesource.com%2Fproposal%2F%2B%2Frefs%2Fheads%2Fmaster%2Fdesign%2Fgo2draft-type-parameters.md%5D%5BType%20Parameters%20-%20Draft%20Design%5D%5D"><span class="todo TODO">TODO</span> <a href="https://go.googlesource.com/proposal/+/refs/heads/master/design/go2draft-type-parameters.md">Type Parameters - Draft Design</a>   <span class="tag"><span class="go">go</span> <span class="_read">#read</span></span></h3>
239<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fgo.googlesource.com%2Fproposal%2F%2B%2Frefs%2Fheads%2Fmaster%2Fdesign%2Fgo2draft-type-parameters.md%5D%5BType%20Parameters%20-%20Draft%20Design%5D%5D">
240<p>
241<span class="timestamp-wrapper"><span class="timestamp">[2020-06-17 Wed 16:47]</span></span>
242</p>
243</div>
244</div>
245<div id="outline-container-%5B%5Bhttps%3A%2F%2Frauljordan.com%2F2020%2F07%2F06%2Fwhy-go-error-handling-is-awesome.html%5D%5BWhy%20Go%E2%80%99s%20Error%20Handling%20is%20Awesome%20%7C%20rauljordan%5D%5D" class="outline-3">
246<h3 id="%5B%5Bhttps%3A%2F%2Frauljordan.com%2F2020%2F07%2F06%2Fwhy-go-error-handling-is-awesome.html%5D%5BWhy%20Go%E2%80%99s%20Error%20Handling%20is%20Awesome%20%7C%20rauljordan%5D%5D"><span class="todo TODO">TODO</span> <a href="https://rauljordan.com/2020/07/06/why-go-error-handling-is-awesome.html">Why Go’s Error Handling is Awesome | rauljordan</a></h3>
247<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Frauljordan.com%2F2020%2F07%2F06%2Fwhy-go-error-handling-is-awesome.html%5D%5BWhy%20Go%E2%80%99s%20Error%20Handling%20is%20Awesome%20%7C%20rauljordan%5D%5D">
248<p>
249<span class="timestamp-wrapper"><span class="timestamp">[2020-07-09 Thu 18:37]</span></span>
250</p>
251</div>
252</div>
253<div id="outline-container-%5B%5Bhttps%3A%2F%2Frauljordan.com%2F2020%2F05%2F25%2Fimmutability-patterns-in-go.html%5D%5BImmutability%20Patterns%20in%20Go%20%7C%20rauljordan%5D%5D" class="outline-3">
254<h3 id="%5B%5Bhttps%3A%2F%2Frauljordan.com%2F2020%2F05%2F25%2Fimmutability-patterns-in-go.html%5D%5BImmutability%20Patterns%20in%20Go%20%7C%20rauljordan%5D%5D"><span class="todo TODO">TODO</span> <a href="https://rauljordan.com/2020/05/25/immutability-patterns-in-go.html">Immutability Patterns in Go | rauljordan</a></h3>
255<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Frauljordan.com%2F2020%2F05%2F25%2Fimmutability-patterns-in-go.html%5D%5BImmutability%20Patterns%20in%20Go%20%7C%20rauljordan%5D%5D">
256<p>
257<span class="timestamp-wrapper"><span class="timestamp">[2020-07-09 Thu 18:37]</span></span>
258</p>
259</div>
260</div>
261<div id="outline-container-%5B%5Bhttps%3A%2F%2Frauljordan.com%2F2019%2F09%2F23%2Fhow-to-write-an-event-feed-library.html%5D%5BWriting%20an%20One-to-Many%20Event%20Feed%20Library%20in%20Go%20%7C%20rauljordan%5D%5D" class="outline-3">
262<h3 id="%5B%5Bhttps%3A%2F%2Frauljordan.com%2F2019%2F09%2F23%2Fhow-to-write-an-event-feed-library.html%5D%5BWriting%20an%20One-to-Many%20Event%20Feed%20Library%20in%20Go%20%7C%20rauljordan%5D%5D"><span class="todo TODO">TODO</span> <a href="https://rauljordan.com/2019/09/23/how-to-write-an-event-feed-library.html">Writing an One-to-Many Event Feed Library in Go | rauljordan</a></h3>
263<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Frauljordan.com%2F2019%2F09%2F23%2Fhow-to-write-an-event-feed-library.html%5D%5BWriting%20an%20One-to-Many%20Event%20Feed%20Library%20in%20Go%20%7C%20rauljordan%5D%5D">
264<p>
265<span class="timestamp-wrapper"><span class="timestamp">[2020-07-09 Thu 18:37]</span></span>
266</p>
267</div>
268</div>
269<div id="outline-container-%5B%5Bhttps%3A%2F%2Fbencane.com%2Fstories%2F2020%2F07%2F06%2Fhow-i-structure-go-packages%2F%23%2Feof-bio%5D%5BHow%20I%20Structure%20Go%20Packages%5D%5D" class="outline-3">
270<h3 id="%5B%5Bhttps%3A%2F%2Fbencane.com%2Fstories%2F2020%2F07%2F06%2Fhow-i-structure-go-packages%2F%23%2Feof-bio%5D%5BHow%20I%20Structure%20Go%20Packages%5D%5D"><span class="todo TODO">TODO</span> <a href="https://bencane.com/stories/2020/07/06/how-i-structure-go-packages/#/eof-bio">How I Structure Go Packages</a></h3>
271<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fbencane.com%2Fstories%2F2020%2F07%2F06%2Fhow-i-structure-go-packages%2F%23%2Feof-bio%5D%5BHow%20I%20Structure%20Go%20Packages%5D%5D">
272<p>
273<span class="timestamp-wrapper"><span class="timestamp">[2020-07-17 Fri 07:23]</span></span>
274</p>
275</div>
276</div>
277<div id="outline-container-%5B%5Bhttps%3A%2F%2Ffasterthanli.me%2Farticles%2Fi-want-off-mr-golangs-wild-ride%5D%5BI%20want%20off%20Mr.%20Golang%27s%20Wild%20Ride%20-%20fasterthanli.me%5D%5D" class="outline-3">
278<h3 id="%5B%5Bhttps%3A%2F%2Ffasterthanli.me%2Farticles%2Fi-want-off-mr-golangs-wild-ride%5D%5BI%20want%20off%20Mr.%20Golang%27s%20Wild%20Ride%20-%20fasterthanli.me%5D%5D"><span class="todo TODO">TODO</span> <a href="https://fasterthanli.me/articles/i-want-off-mr-golangs-wild-ride">I want off Mr. Golang’s Wild Ride - fasterthanli.me</a></h3>
279<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Ffasterthanli.me%2Farticles%2Fi-want-off-mr-golangs-wild-ride%5D%5BI%20want%20off%20Mr.%20Golang%27s%20Wild%20Ride%20-%20fasterthanli.me%5D%5D">
280<p>
281<span class="timestamp-wrapper"><span class="timestamp">[2020-07-01 Wed 19:08]</span></span>
282</p>
283</div>
284</div>
285<div id="outline-container-%5B%5Bhttps%3A%2F%2Fchristine.website%2Fblog%2Fwithin-go-repo-layout-2020-09-07%5D%5BThe%20Within%20Go%20Repo%20Layout%20-%20Christine%20Dodrill%5D%5D" class="outline-3">
286<h3 id="%5B%5Bhttps%3A%2F%2Fchristine.website%2Fblog%2Fwithin-go-repo-layout-2020-09-07%5D%5BThe%20Within%20Go%20Repo%20Layout%20-%20Christine%20Dodrill%5D%5D"><span class="todo TODO">TODO</span> <a href="https://christine.website/blog/within-go-repo-layout-2020-09-07">The Within Go Repo Layout - Christine Dodrill</a></h3>
287<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fchristine.website%2Fblog%2Fwithin-go-repo-layout-2020-09-07%5D%5BThe%20Within%20Go%20Repo%20Layout%20-%20Christine%20Dodrill%5D%5D">
288<p>
289<span class="timestamp-wrapper"><span class="timestamp">[2020-09-08 Tue 07:24]</span></span>
290</p>
291
292<p>
293Go repository layout is a very different thing compared to other languages. There’s a lot of conflicting opinions and little firm guidance to help steer people along a path to more maintainable code. This is a collection of guidelines that help to facilitate understandable and idiomatic Go.
294</p>
295</div>
296</div>
297<div id="outline-container-%5B%5Bhttps%3A%2F%2Fjohnsogg.github.io%2Femacs-golang%5D%5BSet%20up%20Emacs%20for%20Golang%20from%20scratch%20-%20December%202016%20%C2%B7%20jnl%5D%5D" class="outline-3">
298<h3 id="%5B%5Bhttps%3A%2F%2Fjohnsogg.github.io%2Femacs-golang%5D%5BSet%20up%20Emacs%20for%20Golang%20from%20scratch%20-%20December%202016%20%C2%B7%20jnl%5D%5D"><span class="todo TODO">TODO</span> <a href="https://johnsogg.github.io/emacs-golang">Set up Emacs for Golang from scratch - December 2016 · jnl</a>   <span class="tag"><span class="go">go</span></span></h3>
299<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fjohnsogg.github.io%2Femacs-golang%5D%5BSet%20up%20Emacs%20for%20Golang%20from%20scratch%20-%20December%202016%20%C2%B7%20jnl%5D%5D">
300<p>
301<span class="timestamp-wrapper"><span class="timestamp">[2020-04-09 Thu 17:44]</span></span>
302</p>
303
304<p>
305Do the same in 2020 (with go modules), without lsp for now
306Add this to notes (go language)
307</p>
308</div>
309</div>
310<div id="outline-container-%5B%5Bhttps%3A%2F%2Fgithub.com%2Fquii%2Flearn-go-with-tests%5D%5Bquii%2Flearn-go-with-tests%3A%20Learn%20Go%20with%20test-driven%20development%5D%5D" class="outline-3">
311<h3 id="%5B%5Bhttps%3A%2F%2Fgithub.com%2Fquii%2Flearn-go-with-tests%5D%5Bquii%2Flearn-go-with-tests%3A%20Learn%20Go%20with%20test-driven%20development%5D%5D"><span class="todo TODO">TODO</span> <a href="https://github.com/quii/learn-go-with-tests">quii/learn-go-with-tests: Learn Go with test-driven development</a></h3>
312<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fgithub.com%2Fquii%2Flearn-go-with-tests%5D%5Bquii%2Flearn-go-with-tests%3A%20Learn%20Go%20with%20test-driven%20development%5D%5D">
313<p>
314<span class="timestamp-wrapper"><span class="timestamp">[2020-11-16 Mon 09:46]</span></span>
315</p>
316</div>
317</div>
318<div id="outline-container-%5B%5Bhttps%3A%2F%2Ffasterthanli.me%2Farticles%2Fabstracting-away-correctness%5D%5BAbstracting%20away%20correctness%20-%20fasterthanli.me%5D%5D" class="outline-3">
319<h3 id="%5B%5Bhttps%3A%2F%2Ffasterthanli.me%2Farticles%2Fabstracting-away-correctness%5D%5BAbstracting%20away%20correctness%20-%20fasterthanli.me%5D%5D"><span class="todo TODO">TODO</span> <a href="https://fasterthanli.me/articles/abstracting-away-correctness">Abstracting away correctness - fasterthanli.me</a></h3>
320<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Ffasterthanli.me%2Farticles%2Fabstracting-away-correctness%5D%5BAbstracting%20away%20correctness%20-%20fasterthanli.me%5D%5D">
321<p>
322<span class="timestamp-wrapper"><span class="timestamp">[2020-06-30 Tue 19:50]</span></span>
323</p>
324</div>
325</div>
326<div id="outline-container-%5B%5Bhttps%3A%2F%2Fblog.questionable.services%2Farticle%2Fguide-logging-middleware-go%2F%5D%5BA%20Guide%20To%20Writing%20Logging%20Middleware%20in%20Go%20%C2%B7%20questionable%20services%5D%5D" class="outline-3">
327<h3 id="%5B%5Bhttps%3A%2F%2Fblog.questionable.services%2Farticle%2Fguide-logging-middleware-go%2F%5D%5BA%20Guide%20To%20Writing%20Logging%20Middleware%20in%20Go%20%C2%B7%20questionable%20services%5D%5D"><span class="todo TODO">TODO</span> <a href="https://blog.questionable.services/article/guide-logging-middleware-go/">A Guide To Writing Logging Middleware in Go · questionable services</a></h3>
328<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fblog.questionable.services%2Farticle%2Fguide-logging-middleware-go%2F%5D%5BA%20Guide%20To%20Writing%20Logging%20Middleware%20in%20Go%20%C2%B7%20questionable%20services%5D%5D">
329<p>
330<span class="timestamp-wrapper"><span class="timestamp">[2020-10-06 Tue 17:18]</span></span>
331</p>
332</div>
333</div>
334<div id="outline-container-%5B%5Bhttps%3A%2F%2Fwww.arp242.net%2Fread-stdin.html%5D%5BBetter%20UX%20when%20reading%20from%20stdin%5D%5D" class="outline-3">
335<h3 id="%5B%5Bhttps%3A%2F%2Fwww.arp242.net%2Fread-stdin.html%5D%5BBetter%20UX%20when%20reading%20from%20stdin%5D%5D"><span class="todo TODO">TODO</span> <a href="https://www.arp242.net/read-stdin.html">Better UX when reading from stdin</a></h3>
336<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fwww.arp242.net%2Fread-stdin.html%5D%5BBetter%20UX%20when%20reading%20from%20stdin%5D%5D">
337<p>
338<span class="timestamp-wrapper"><span class="timestamp">[2019-12-12 Thu 18:03]</span></span>
339</p>
340</div>
341</div>
342<div id="outline-container-%5B%5Bhttps%3A%2F%2Fwww.alexedwards.net%2Fblog%2Fwhich-go-router-should-i-use%5D%5BWhich%20Go%20router%20should%20I%20use%3F%20%28with%20flowchart%29%20%E2%80%93%20Alex%20Edwards%5D%5D" class="outline-3">
343<h3 id="%5B%5Bhttps%3A%2F%2Fwww.alexedwards.net%2Fblog%2Fwhich-go-router-should-i-use%5D%5BWhich%20Go%20router%20should%20I%20use%3F%20%28with%20flowchart%29%20%E2%80%93%20Alex%20Edwards%5D%5D"><span class="todo TODO">TODO</span> <a href="https://www.alexedwards.net/blog/which-go-router-should-i-use">Which Go router should I use? (with flowchart) – Alex Edwards</a></h3>
344<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fwww.alexedwards.net%2Fblog%2Fwhich-go-router-should-i-use%5D%5BWhich%20Go%20router%20should%20I%20use%3F%20%28with%20flowchart%29%20%E2%80%93%20Alex%20Edwards%5D%5D">
345<div class='drawer properties'>
346<h6>Properties</h6>
347<p>
348:CREATED:<span class="timestamp-wrapper"><span class="timestamp">[2021-10-05 Tue 16:01]</span></span>
349</p>
350</div>
351</div>
352</div>
353<div id="outline-container-%5B%5Bhttps%3A%2F%2Fchristine.website%2Fblog%2Fgonads-2022-04-24%5D%5BCrimes%20with%20Go%20Generics%20-%20Xe%5D%5D" class="outline-3">
354<h3 id="%5B%5Bhttps%3A%2F%2Fchristine.website%2Fblog%2Fgonads-2022-04-24%5D%5BCrimes%20with%20Go%20Generics%20-%20Xe%5D%5D"><span class="todo TODO">TODO</span> <a href="https://christine.website/blog/gonads-2022-04-24">Crimes with Go Generics - Xe</a></h3>
355<div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fchristine.website%2Fblog%2Fgonads-2022-04-24%5D%5BCrimes%20with%20Go%20Generics%20-%20Xe%5D%5D">
356<p>
357<span class="timestamp-wrapper"><span class="timestamp">[2022-05-05 Thu 22:05]</span></span>
358</p>
359</div>
360</div>
361<div id="outline-container-Misc" class="outline-3">
362<h3 id="Misc">Misc</h3>
363<div class="outline-text-3" id="text-Misc">
364<ul class="org-ul">
365<li><a href="https://peter.bourgon.org/go-for-industrial-programming/#testing">https://peter.bourgon.org/go-for-industrial-programming/#testing</a></li>
366<li><a href="https://www.bartfokker.nl/posts/decorators/">https://www.bartfokker.nl/posts/decorators/</a></li>
367<li><a href="http://technosophos.com/2018/07/04/be-nice-and-write-stable-code.html">http://technosophos.com/2018/07/04/be-nice-and-write-stable-code.html</a></li>
368</ul>
369</div>
370</div>
371</section>
372</main>
373<footer id="postamble" class="status">
374<footer>
375 <small><a href="/" rel="history">Index</a> • <a href="/sitemap.html">Sitemap</a> • <a href="https://dl.sbr.pm/">Files</a></small><br/>
376 <small class='questions'>Questions, comments ? Please use my <a href="https://lists.sr.ht/~vdemeester/public-inbox">public inbox</a> by sending a plain-text email to <a href="mailto:~vdemeester/public-inbox@lists.sr.ht">~vdemeester/public-inbox@lists.sr.ht</a>.</small><br/>
377 <small class='copyright'>
378 Content and design by Vincent Demeester
379 (<a rel='licence' href='http://creativecommons.org/licenses/by-nc-sa/3.0/'>Some rights reserved</a>)
380 </small><br />
381</footer>
382</footer>
383</body>
384</html>