logo

drewdevault.com

[mirror] blog and personal website of Drew DeVault git clone https://hacktivis.me/git/mirror/drewdevault.com.git
commit: eff5c8248ed48d270b697a20cd5db2289e2bbbaf
parent 91eb2fe1a0891306ac1924a312200126edd6d8e9
Author: Drew DeVault <sir@cmpwn.com>
Date:   Mon, 15 Feb 2021 09:03:55 -0500

Status update

Diffstat:

Acontent/blog/Status-update-February-2021.gmi111+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acontent/blog/Status-update-February-2021.html64++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 175 insertions(+), 0 deletions(-)

diff --git a/content/blog/Status-update-February-2021.gmi b/content/blog/Status-update-February-2021.gmi @@ -0,0 +1,111 @@ +Salutations! It's officially a year of pandemic life. I hear the vaccine distribution is going well, so hopefully there won't be another year of this. In the meanwhile, I've been working hard on free software, what with having little else to do. However, I'm afraid I cannot tell you about most of it! + +I've been working on todo.sr.ht's GraphQL API, and it's going quite well. I hope to ship a working read-only version later this month. There have been a number of bug fixes and rote maintenance work on sr.ht as well, but nothing particularly exciting. We did upgrade everything for Alpine 3.13, which went off without a hitch. Anyway, I'll go over the minor details in the sr.ht "what's cooking" post later today. + +The rest of the progress was made in secret. Secret! You will have to live in ignorance for now. Sorry! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Here's a peek at our progress: + +``` +use fmt; +use io; +use os; + +export fn main() void = { + if (len(os::args) == 1) match (io::copy(os::stdout, os::stdin)) { + err: io::error => fmt::fatal("Error copying <stdin>: {}", + io::errstr(err)), + size => return, + }; + + for (let i = 1z; i < len(os::args); i += 1) { + let f = match (os::open(os::args[i], io::mode::RDONLY)) { + s: *io::stream => s, + err: io::error => fmt::fatal("Error opening {}: {}", + os::args[i], io::errstr(err)), + }; + defer io::close(f); + + match (io::copy(os::stdout, f)) { + err: io::error => fmt::fatal("Error copying {}: {}", + os::args[i], io::errstr(err)), + size => void, + }; + }; +}; +``` + +I'm looking for a few volunteers to get involved and help flesh out the standard library. If you are interested, please follow up off-list by mailing sir@cmpwn.com to express your interest, along with your sr.ht username and a few words about your systems programming experience — languages you're comfortable with, projects you've worked on, platforms you grok, etc. diff --git a/content/blog/Status-update-February-2021.html b/content/blog/Status-update-February-2021.html @@ -0,0 +1,64 @@ +--- +title: Status update, February 2021 +date: 2021-02-15 +outputs: [html, gemtext] +--- + +<p> +Salutations! It's officially a year of pandemic life. I hear the vaccine +distribution is going well, so hopefully there won't be another year of this. In +the meanwhile, I've been working hard on free software, what with having little +else to do. However, I'm afraid I cannot tell you about most of it! + +<p> +I've been working on todo.sr.ht's GraphQL API, and it's going quite well. I hope +to ship a working read-only version later this month. There have been a number +of bug fixes and rote maintenance work on sr.ht as well, but nothing +particularly exciting. We did upgrade everything for Alpine 3.13, which went off +without a hitch. Anyway, I'll go over the minor details in the sr.ht "what's +cooking" post later today. + +<p> +The rest of the progress was made in secret. Secret! You will have to live in +ignorance for now. Sorry! + +<details> +<summary>(unless you click this)</summary> +<p>Here's a peek at our progress:</p> +<pre> +use fmt; +use io; +use os; + +export fn main() void = { + if (len(os::args) == 1) match (io::copy(os::stdout, os::stdin)) { + err: io::error =&gt; fmt::fatal("Error copying &lt;stdin&gt;: {}", + io::errstr(err)), + size =&gt; return, + }; + + for (let i = 1z; i &lt; len(os::args); i += 1) { + let f = match (os::open(os::args[i], io::mode::RDONLY)) { + s: *io::stream =&gt; s, + err: io::error =&gt; fmt::fatal("Error opening {}: {}", + os::args[i], io::errstr(err)), + }; + defer io::close(f); + + match (io::copy(os::stdout, f)) { + err: io::error =&gt; fmt::fatal("Error copying {}: {}", + os::args[i], io::errstr(err)), + size =&gt; void, + }; + }; +}; +</pre> +<p> +I'm looking for a few volunteers to get involved and help flesh out the standard +library. If you are interested, please follow up off-list by mailing +<a href="mailto:sir@cmpwn.com">sir@cmpwn.com</a> to express your interest, +along with your sr.ht username and a few words about your systems programming +experience &mdash; languages you're comfortable with, projects you've worked +on, platforms you grok, etc. +</p> +</details>