summaryrefslogtreecommitdiff
path: root/public
diff options
context:
space:
mode:
Diffstat (limited to 'public')
-rw-r--r--public/index.html127
1 files changed, 69 insertions, 58 deletions
diff --git a/public/index.html b/public/index.html
index 8cea94f..653ef1f 100644
--- a/public/index.html
+++ b/public/index.html
@@ -1,4 +1,3 @@
-
<!DOCTYPE html>
<html lang="en">
@@ -23,68 +22,81 @@
</div>
<nav class="nav">
<ul>
-
-
+
+
<li><a class="no-decorations" href="/">Home</a></li>
-
-
-
+
+
+
<li><a class="no-decorations" href="/posts">Posts</a></li>
-
-
-
+
+
+
<li><a class="no-decorations" href="/ethos">Ethos</a></li>
-
-
+
+
+ <li><a class="no-decorations" href="https://psh.cx">notes</a></li>
</ul>
</nav>
</div>
- <hr />
-
-<h1>Home</h1>
-<h2 id="about-me">About Me</h2>
-<p>I'm a backend software engineer. I primarily work in Kubernetes, writing microservices in Go.</p>
-<h2 id="tidbits">Tidbits</h2>
-<p>Arbitrary bits of information I found useful</p>
-<h3 id="go">Go</h3>
-<ul>
-<li>layout packages by what they do, not by their abstract type</li>
-<li>use channels sparingly: write synchronous methods and allow the caller to make it async</li>
-<li><code>append</code> modifies the underlying slice, you'll only make this mistake once</li>
-<li>define interfaces where you use them</li>
-<li><code>make([]int, 5)</code> has a length and capacity of 5. <code>([]int, 0,5)</code> has a length of 0 and capacity of 5.<br />
-<code>append()</code> will only do what you want with the latter</li>
-<li>don't use <code>init()</code></li>
-<li>TFBO (test, fix, benchmark, optimise)</li>
-<li>more CPU != more performance<br />
-more CPU == more contention</li>
-</ul>
-<h3 id="git">git</h3>
-<ul>
-<li><code>git reflog</code> will save you when you mess up</li>
-<li>Keep your git history clean
-<ul>
-<li><code>git commit --fixup=&lt;COMMITISH&gt;</code></li>
-<li><code>git rebase origin/main --autosquash</code></li>
-</ul>
-</li>
-</ul>
-<h2 id="reading">Reading</h2>
-<ul>
-<li><a href="https://cs.opensource.google/go/go/+/refs/tags/go1.23.0:src/runtime/proc.go"><code>proc.go</code></a> - Go documentation is great, this describes the scheduler</li>
-<li><a href="https://github.com/golang/go/issues/67120">proposal: runtime/metrics: define a recommended set of metrics</a></li>
-</ul>
-<ul>
-<li><a href="https://calteches.library.caltech.edu/51/2/CargoCult.htm">Cargo Cult Science - Richard Feynman</a></li>
-<li><a href="https://www.cs.virginia.edu/~robins/YouAndYourResearch.pdf">You and Your Research - Richard Hamming</a></li>
-</ul>
-<ul>
-<li><a href="https://www.oreilly.com/library/view/designing-data-intensive-applications/9781491903063">Designing Data Intensive Applications - Martin Kleppmann</a></li>
-<li><a href="https://www.oreilly.com/library/view/database-internals/9781492040330">Database Internals - Alex Petrov</a></li>
-<li><a href="https://www.oreilly.com/library/view/efficient-go/9781098105709">Efficient Go - Bartlomeij Plotka</a></li>
-<li><a href="https://press.stripe.com/the-art-of-doing-science-and-engineering">The Art of Doing Science and Engineering - Richard Hamming</a></li>
-<li><a href="https://www.oreilly.com/library/view/the-art-of/9781492080688/">The Art of Agile Development - James Shore, Shane Warden</a></li>
-</ul>
+ <hr />
+
+ <h1>Home</h1>
+ <h2 id="about-me">About Me</h2>
+ <p>I'm a backend software engineer. I primarily work in Kubernetes, writing microservices in Go.</p>
+ <h2 id="tidbits">Tidbits</h2>
+ <p>Arbitrary bits of information I found useful</p>
+ <h3 id="go">Go</h3>
+ <ul>
+ <li>layout packages by what they do, not by their abstract type</li>
+ <li>use channels sparingly: write synchronous methods and allow the caller to make it async</li>
+ <li><code>append</code> modifies the underlying slice, you'll only make this mistake once</li>
+ <li>define interfaces where you use them</li>
+ <li><code>make([]int, 5)</code> has a length and capacity of 5. <code>([]int, 0,5)</code> has a length of 0
+ and capacity of 5.<br />
+ <code>append()</code> will only do what you want with the latter
+ </li>
+ <li>don't use <code>init()</code></li>
+ <li>TFBO (test, fix, benchmark, optimise)</li>
+ <li>more CPU != more performance<br />
+ more CPU == more contention</li>
+ </ul>
+ <h3 id="git">git</h3>
+ <ul>
+ <li><code>git reflog</code> will save you when you mess up</li>
+ <li>Keep your git history clean
+ <ul>
+ <li><code>git commit --fixup=&lt;COMMITISH&gt;</code></li>
+ <li><code>git rebase origin/main --autosquash</code></li>
+ </ul>
+ </li>
+ </ul>
+ <h2 id="reading">Reading</h2>
+ <ul>
+ <li><a
+ href="https://cs.opensource.google/go/go/+/refs/tags/go1.23.0:src/runtime/proc.go"><code>proc.go</code></a>
+ - Go documentation is great, this describes the scheduler</li>
+ <li><a href="https://github.com/golang/go/issues/67120">proposal: runtime/metrics: define a recommended set
+ of metrics</a></li>
+ </ul>
+ <ul>
+ <li><a href="https://calteches.library.caltech.edu/51/2/CargoCult.htm">Cargo Cult Science - Richard
+ Feynman</a></li>
+ <li><a href="https://www.cs.virginia.edu/~robins/YouAndYourResearch.pdf">You and Your Research - Richard
+ Hamming</a></li>
+ </ul>
+ <ul>
+ <li><a href="https://www.oreilly.com/library/view/designing-data-intensive-applications/9781491903063">Designing
+ Data Intensive Applications - Martin Kleppmann</a></li>
+ <li><a href="https://www.oreilly.com/library/view/database-internals/9781492040330">Database Internals -
+ Alex Petrov</a></li>
+ <li><a href="https://www.oreilly.com/library/view/efficient-go/9781098105709">Efficient Go - Bartlomeij
+ Plotka</a></li>
+ <li><a href="https://press.stripe.com/the-art-of-doing-science-and-engineering">The Art of Doing Science and
+ Engineering - Richard Hamming</a></li>
+ <li><a href="https://www.oreilly.com/library/view/the-art-of/9781492080688/">The Art of Agile Development -
+ James Shore, Shane Warden</a></li>
+ </ul>
<footer>
@@ -97,4 +109,3 @@ more CPU == more contention</li>
</body>
</html>
-