logo

drewdevault.com

[mirror] blog and personal website of Drew DeVault git clone https://hacktivis.me/git/mirror/drewdevault.com.git
commit: 1db367acc03ea877c6df750c21a05882bd3e9000
parent ad644d68a1ec3364c9e95c65ca7edc1febb3b2e2
Author: Drew DeVault <sir@cmpwn.com>
Date:   Fri, 15 Jan 2021 09:39:15 -0500

Status update

Diffstat:

Acontent/blog/Status-update-January-2021.gmi12++++++++++++
Acontent/blog/Status-update-January-2021.html101+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 113 insertions(+), 0 deletions(-)

diff --git a/content/blog/Status-update-January-2021.gmi b/content/blog/Status-update-January-2021.gmi @@ -0,0 +1,12 @@ +Hello from the future! My previous status update was last year, but it feels like it was only a month ago. I hope you didn't miss my crappy jokes too much during the long wait. + +One of the advancements that I would like to mention this month is the general availability of godocs.io, which is a replacement for the soon-to-be-obsolete godoc.org, based on a fork of their original codebase. Our fork has already attracted interest from many contributors who wanted to work on godoc.org, but found the Google CLA distasteful. We've been hard at work excising lots of Google crap, rewriting the indexer to use PostgreSQL instead of GCP, and making the little JavaScript bits more optional & more conservative in their implementation. We also plan to update it with first-class support for Go modules, which was never added to the upstream gddo codebase. Beyond this, we do not plan on making any large-scale changes: we just want godoc.org to keep being a thing. Enjoy! + +=> https://godocs.io godocs.io +=> https://sr.ht/~sircmpwn/godocs.io Our fork of gddo + +On SourceHut, the first point of note is the new dark theme, which is automatically enabled when your user-agent configures prefers-color-scheme: dark. It has gone through a couple of iterations of refinement, and I have a few more changes queued up for my next round of improvements. Please let me know if you notice anything unusual! Additionally, I broke ground on the todo.sr.ht API 2.0 implementation this month. It required some minor changes to our underlying GraphQL approach, but in general it should be fairly straightforward — albiet time consuming — to implement. Ludovic has also started working on an API 2.0 branch for hg.sr.ht, which I plan on reviewing shortly. + +Small projects have enjoyed some improvements as well. mkproof grew multi-processor support and had its default difficulty tweaked accordingly — thanks, Tom! Zach DeCook and Nolan Prescott also sent some bugfixes for gmnisrv, and René Wagner and Giuseppe Lumia both helped fix some issues with gmni as well. Jason Phan sent an improvement for dowork which adds random jitter to the exponential backoff calcluation. Thanks to all of these folks for their help! + +That's all for today. Thanks again for your support and attention, and I'll see you again soon! diff --git a/content/blog/Status-update-January-2021.html b/content/blog/Status-update-January-2021.html @@ -0,0 +1,101 @@ +--- +title: Status update, January 2021 +date: 2021-01-15 +outputs: [html, gemtext] +--- + +<p> +Hello from the future! My previous status update was last year, but it feels +like it was only a month ago. I hope you didn't miss my crappy jokes too much +during the long wait. + +<p> +One of the advancements that I would like to mention this month is the general +availability of <a href="https://godocs.io">godocs.io</a>, which is a replacement for the +soon-to-be-obsolete godoc.org, based on a fork of their original codebase. +<a href="https://sr.ht/~sircmpwn/godocs.io">Our fork</a> has already attracted +interest from many contributors who wanted to work on godoc.org, but found the +Google CLA distasteful. We've been hard at work excising lots of Google crap, +rewriting the indexer to use PostgreSQL instead of GCP, and making the little +JavaScript bits more optional &amp; more conservative in their implementation. +We also plan to update it with first-class support for Go modules, which was +never added to the upstream gddo codebase. Beyond this, we do not plan on +making any large-scale changes: we just want godoc.org to keep being a thing. +Enjoy! + +<p> +On SourceHut, the first point of note is the new dark theme, which is +automatically enabled when your user-agent configures +<code>prefers-color-scheme: dark</code>. It has gone through a couple of +iterations of refinement, and I have a few more changes queued up for my next +round of improvements. Please let me know if you notice anything unusual! +Additionally, I broke ground on the todo.sr.ht API 2.0 implementation this +month. It required some minor changes to our underlying GraphQL approach, but +in general it should be fairly straightforward &mdash; albiet time consuming +&mdash; to implement. Ludovic has also started working on an API 2.0 branch for +hg.sr.ht, which I plan on reviewing shortly. + +<p> +Small projects have enjoyed some improvements as well. +<a href="https://sr.ht/~sircmpwn/mkproof/">mkproof</a> grew multi-processor +support and had its default difficulty tweaked accordingly &mdash; thanks, Tom! +Zach DeCook and Nolan Prescott also sent some bugfixes for +<a href="https://sr.ht/~sircmpwn/gmnisrv/">gmnisrv</a>, and René Wagner and +Giuseppe Lumia both helped fix some issues with +<a href="https://sr.ht/~sircmpwn/gmni">gmni</a> as well. Jason Phan sent an +improvement for <a href="https://sr.ht/~sircmpwn/dowork">dowork</a> which adds +random jitter to the exponential backoff calcluation. Thanks to all of these +folks for their help! + +<p> +That's all for today. Thanks again for your support and attention, and I'll see +you again soon! + +<details> +<summary>...</summary> +<p>I have actually been working on this a lot this month. Progress is good. +<pre>fn measurements() void = { + const x = "Hello!"; + assert(len(x) == 6z); + assert(size(str) == size(*u8) + size(size) * 2z); + const align: size = + if (size(*u8) &gt; size(size)) size(*u8) + else size(size); + assert(&amp;x: uintptr: size % align == 0z); +}; + +fn charptr() void = { + const x = "Hello!"; + const y = x: *const char; + const z = y: *[*]u8; + const expected = ['H', 'e', 'l', 'l', 'o', '!', '\0']; + for (let i = 0z; i &lt; len(expected); i += 1z) { + assert(z[i] == expected[i]: u32: u8); + }; +}; + +fn storage() void = { + const string = "こんにちは"; + const ptr = &amp;string: *struct { + data: *[*]u8, + length: size, + capacity: size, + }; + assert(ptr.length == 15z &amp;&amp; ptr.capacity == 15z); + + // UTF-8 encoded + const expected = [ + 0xE3u8, 0x81u8, 0x93u8, 0xE3u8, 0x82u8, 0x93u8, 0xE3u8, 0x81u8, + 0xABu8, 0xE3u8, 0x81u8, 0xA1u8, 0xE3u8, 0x81u8, 0xAFu8, 0x00u8, + ]; + for (let i = 0z; i &lt; len(expected); i += 1z) { + assert(ptr.data[i] == expected[i]); + }; +}; + +export fn main() void = { + measurements(); + charptr(); + storage(); +};</pre> +</details>