diff options
| -rw-r--r-- | public/index.html | 127 |
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=<COMMITISH></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=<COMMITISH></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> - |
