💾 Archived View for gemini.rawles.net › colophon captured on 2021-12-17 at 13:26:06. Gemini links have been rewritten to link to archived content
View Raw
More Information
⬅️ Previous capture (2021-12-03)
-=-=-=-=-=-=-
Colophon
(updated 2021-08-20)
This site is built from an simple intermediate language and output by a program called `rno` to the source your browser is reading now.
Compared to other websites, it looks pretty dull. However, this language encourages and enforces simplicity in the output pages and how they are transferred and rendered. There are some benefits to doing thing this way:
- Each page is PROVABLY GUARANTEED to pass validation tests⁽ᵃ⁾ because in part it is specified as a value of a Haskell type that has already passed Haskell's type checks.
(a) validator.w3.org — via https
- The site is more accessible, that is, usable by people with the widest possible range of abilities, including those using assistive technologies like screen readers.
- The user can style the page themselves with user stylesheets if they feel that it's too ugly for them. I could in the future offer a bunch of different stylesheets so the user can pick the one that they like.
- Pages look good in text browsers like w3m⁽ᵃ⁾, links⁽ᵇ⁾ or the truly old-school lynx⁽ᶜ⁾, and the user experience is pretty much the same, apart from the odd image or figure here and there. It also works on mobile phones or a ton of other devices that struggle to cope with more complicated layouts.
(a) w3m.sourceforge.net — via http
(b) jikos.cz — via http
(c) lynx.browser.org — via http
- The site can also be viewed by users of other information systems such as Gemini⁽ᵃ⁾ or Gopher⁽ᵇ⁾, even as plain text files.
(a) circumlunar.space — via https
(b) en.wikipedia.org — via https
- Bloat⁽ᵃ⁾ is reduced at each stage in the conversion process via minifiers and optimisers, leading to pages which are astonishingly small. With compression, a long article typically transfers in 10k or less, and the entire site is well under 200k. This helps a lot if you're on a rural connection in the developing world with lots of packet loss.
(a) danluu.com — via https
- Related to the last point, the hosting requirements are modest too. It's feasible to host this site on the router⁽ᵃ⁾ itself or using solar power⁽ᵇ⁾, etc. Some pages are generated programmatically, for example the dinner club one⁽ᶜ⁾. These are generated at site compilation time, typically computed via a bunch of Haskell⁽ᵈ⁾ and remain static on the server. The minimal file size and static serving of files means that a page will load in 100ms or less, even though it's hosted on a Raspberry Pi in the London docklands⁽ᵉ⁾ behind a IPv4-to-v6 proxy.
(a) openwrt.org — via https
(b) solar.lowtechmagazine.com — via https
(c) The Hemsby Dining Club
(d) haskell.org — via https
(e) mythic-beasts.com — via https
- The only JavaScript dependency is the mighty MathJax⁽ᵃ⁾. It will be downloaded from jsDelivr⁽ᵇ⁾'s content delivery network IF AND ONLY IF the page transformer fails to convert the maths into something that can be rendered in plain HTML. Given the other princples I've outlined above, I'd have preferred to convert to MathML⁽ᶜ⁾ for this, but its browser support⁽ᵈ⁾ is sadly too limited to guarantee that a visitor could view the pages reliably, so MathJax seems like the next best approach. Of course, the download is significantly bigger than anything else you're likely to get here, but the majority of my maths is simple enough to be converted into Unicode. MathJax is licensed⁽ᵉ⁾ under Apache 2.0⁽ᶠ⁾, which is even recommended by rms and chums⁽ᵍ⁾, so it's not TOO egregious.
(a) mathjax.org — via https
(b) jsdelivr.com — via https
(c) w3.org — via https
(d) en.wikipedia.org — via https
(e) github.com — via https
(f) apache.org — via https
(g) gnu.org — via https
Besides these, I try to stick by the following principles of a utopian web:
- There is no user tracking, besides the web access logs that nginx writes⁽ᵃ⁾. There are no cookies here, and therefore no pop-ups to request consent to store cookies.
(a) docs.nginx.com — via https
- I outlink compulsively, because I think that one of the best features of the web is just having fun clicking around related sites. This site contains over one thousand distinct outlinks so far. The page building process even inserts automatic links where the source document is a text file. Over time I add to this, and even more outlinks appear. I always appreciate inlinks.
- Information has become very centralised on the web, and people usually rely on external services to store and present their blog⁽ᵃ⁾ or travel tips⁽ᵇ⁾ or whatever. Self-hosting means the priorities of these services can't interfere with the availability or use of the data in the future.
(a) Simon's blog
(b) Visiting
Really, this site is mostly for my use. I see it as a scrappy notebook for my use that anyone in the world can open up and read. It's not meant to be a showcase or 'web presence' for anything or anyone, or even distribute anything. It's just a server where I drop documents and notes from time to time.
Thanks for dropping by! Feel free to get in touch⁽ᵃ⁾ if you want to!
(a) Contacting Simon Rawles
▣
You are here:
rawles.net
↳ colophon