paritybit.ca

Raw content of https://www.paritybit.ca.
git clone https://git.sr.ht/~jbauer/paritybit.ca
Log | Files | Refs | README | LICENSE

commit b4dee4dae8ded53bf2797867c86d6f5e5d07737d
parent 855a5d0b0e854f1496e32b2004b0eaf25abfbb1f
Author: Jake Bauer <jbauer@paritybit.ca>
Date:   Mon, 22 Aug 2022 23:08:19 -0400

*

Diffstat:
Mcontent/garden/arboretum/documentation/sysadmin/openbsd-server-details.gmi | 4++++
Mcontent/garden/index.gmi | 2+-
Mcontent/garden/plots/os-project.gmi | 4++++
Mcontent/garden/plots/philosophy-software-development.gmi | 6++++++
4 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/content/garden/arboretum/documentation/sysadmin/openbsd-server-details.gmi b/content/garden/arboretum/documentation/sysadmin/openbsd-server-details.gmi @@ -183,7 +183,9 @@ When pushing new content to my web site or gemini capsule, a few things need to #!/bin/sh # Update the website +echo "Gzipping site contents..." gzip -fkrq /var/www/paritybit.ca/ 2>/dev/null +echo "Chowning site contents..." chown -R www:daemon /var/www/paritybit.ca # Update the Gemini site @@ -194,8 +196,10 @@ else git clone git://git.paritybit.ca/paritybit.ca fi +echo "Updating gemini capsule contents..." cp -r paritybit.ca/content/garden/* paritybit.ca/static/img /var/gemini/ +echo "Chowning gemini capsule contents..." chown -R _vger:_vger /var/gemini/ ``` diff --git a/content/garden/index.gmi b/content/garden/index.gmi @@ -32,7 +32,7 @@ If this is your first time visiting this garden, please have a look at my Digita => digital-garden-philosophy.gmi ๐Ÿ“œ Digital Garden Philosophy -Right now you are standing at a carrefour (with a beautiful water fountain in the centre). Laid out before you is a selection of different paths. They serve to loosely collect and broadly organize the garden. +Right now you are standing at a carrefour (with a beautiful water fountain in the centre). Laid out before you is a selection of different paths. They serve to loosely collect and broadly organize the garden. Explore at your leisure. => greenhouse/ ๐ŸŒฑ The Greenhouse diff --git a/content/garden/plots/os-project.gmi b/content/garden/plots/os-project.gmi @@ -35,3 +35,7 @@ * Drivers are a mess anyways, a program to connect to a printer should just connect to the printer, not need to go through a middleman * Stuff like sound is solved, but very broken/complicated in a lot of OSes, it should be simple to stream sound to devices, no need for 100s of drivers * Make the hardware target the software, not the other way around. One software stack/protocol is really simple to maintain compared to 100s of different pieces of software to support 100s of different devices (i.e. standardize on some set of protocols or say "if you want to support this OS, you have to do this in your hardware"), if not then use a userspace translation program, so at least this "driver" doesn't have kernel access. + +## Default font? + +=> http://paulbourke.net/dataformats/hershey/ diff --git a/content/garden/plots/philosophy-software-development.gmi b/content/garden/plots/philosophy-software-development.gmi @@ -15,3 +15,9 @@ Software and computers should be tools to accomplish specific tasks the same way When possible, design from the ground up. You can reuse existing code or make libraries out of the things you write, but donโ€™t rely on abstractions to take care of absolutely everything for you (cough cough Python). Expose the inner workings of your programs to developers wherever possible. Keep the human in the loop. Computers should be built for specific purposes in mind and should not have general purpose kernels or OSes on them. This simplifies the operation of a device at the cost of development time, but ultimately the whole stack is understood and under your control. + +Check out Dijkstra's ACM Turing Award lecture in which he describes how programs may be written to be virtually free of bugs + +* must be intellectually simple (enough to keep in one programmer's head) +* functions must return one value +* a proof of correctness should be done before/while constructing the program, instead of trying to prove correctness by creating tests to prove that there are no bugs (which is not necessarily possible) (but maybe combine the two)