* Re: [9fans] Self Hosting and 9front Development
[not found] <7956CA0278F01E17AD6DAF7C4C24069B@eigenstate.org>
@ 2025-06-02 23:07 ` ron minnich
2025-06-03 7:13 ` sirjofri via 9fans
2025-06-03 10:31 ` Steve simon
2 siblings, 0 replies; 3+ messages in thread
From: ron minnich @ 2025-06-02 23:07 UTC (permalink / raw)
To: 9fans
[-- Attachment #1: Type: text/plain, Size: 5672 bytes --]
having done the non-self-hosted versions of plan 9 several times now (NxM
and Harvey) I'd have to agree.
technically, the Blue Gene port was not self hosting, but maybe that's a
special case.
On Mon, Jun 2, 2025 at 3:50 PM <ori@eigenstate.org> wrote:
> This has been bouncing around in my head for a bit, but it felt
> like a good time to put this in writing.
>
> Warning, incoming screed.
>
> So, -- Why self hosting?
>
> In short: Because if you don't use it, how will you know what
> the rough edges are? If you can't be bothered to use the system,
> why would you stick around to hack on it?
>
> The theme we see over and over again is that nothing useful gets
> done without first getting to know the system, and learning how
> to use it. Trying to find a way to shortcut people learning is
> a self-own. It doesn't help -- it undermines. It shows that we
> don't even think this system is worth using ourselves. If even
> the plan 9 developers don't want to use the system, why would
> anyone else want to?
>
> In 9front, we host almost all parts of our development process
> on 9front -- the git repositories, the mailing list, the ci/cd,
> the web site, and everything else. (The exception is #cat-v
> IRC) We use the system regularly, both when hacking on the
> system and in our personal use.
>
> Personally, I write most of my code on Plan 9, read my emails
> there, and often drive Linux from there. I run my home network
> off of a 9front CPU server, and host my websites off it. I know
> other people around 9front do similar.
>
> It's not the only system we use, but it is a system we interact
> with daily, to get significant portions of our day to day
> computing needs accomplished. And as we see the other systems we
> use get enshittified, and we find the time to build the missing
> pieces, we slowly move more and more of our environment over to
> 9front. The system improves, and our lives along with it.
>
> As a result, we get a lot of improvements put into the system,
> and things rapidly get more usable over time.
>
> Several examples of this:
>
> * Because of AI crawlers hitting shithub and generating a good
> deal of load, we found several issues with our system under
> load, including (most recently) a bug in error handling when
> we oom-kill big processes.
>
> * Because coraid used upas for their corporate mail, nupas
> was written -- now, I can actually load all of my email
> history in less than 12 hours.
>
> * Because tailscale wanted a fun April Fool's prank, we got
> monotonic time. Trying to use Plan 9 for an April Fool's
> prank got more done towards Go working smoothly on Plan 9
> than I've seen in years.
>
> * Because we wanted to be able to hook in some Linux every now
> and then, we gained support for running VMs. And because some
> of us use vmx on wifi, we added the MAT Daemon -- the tool for
> doing mac address translation on wifi. This is a capability
> that other OSes don't have, and it makes networking on VMs
> much more pleasant.
>
> * Because I wanted to get TLS certificates painlessly, 9front
> now ships with auth/acmed. It's one of the only acme clients
> that supports DNS based auth painlessly.
>
> * Because we wanted to test gefs using Go's file system and
> build tests, we found several race conditions and bugs in
> unrelated utilities, including a long-standing cras around
> semaphores and task switching
>
> * Because I wanted to read my emails and kept losing them,
> acme mail got a rewrite, and now supports threaded views
>
> * Because I wanted to develop on some portable projects that
> ran on both Unix and Plan 9, I wrote git.
>
> * Because several people in 9front use it as their home router,
> we got NAT support in the kernel.
>
> The list goes on and on. The repeated theme is that people find
> themselves wanting to accomplish a goal, solving a problem for
> themselves in their day to day lives, and with a little bit of
> work, we end up putting together a solution. Usually, the
> solution we end up with ends up being more pleasant than what we
> find on many competing systems.
>
> And because these changes are driven by concrete needs of real
> users and 9front hackers, there isn't much need for trying to
> "rally the troops"; people already know what their needs are,
> the issue is finding the time to address the needs, and getting
> the design right so that we don't end with a system composed of
> a collection of warts.
>
> 9front is developed via "I'm doing this, thoughts?", and not
> "you should do this".
>
> Often, the person who writes the patch isn't the one who tried
> to use the system, but someone who learned enough to get the
> hang of how to do things, and then asked specific, well formed
> questions about how to accomplish a goal. Usually, the answer
> is "like this", often the answer is "we have a better way to
> solve the problem", but sometimes, the answer is "oh, that sucks
> -- but we can fix it".
>
> However, using the system needs to come first. Without regular
> use, everything falls apart -- bitrot sets in. Using things is
> necessary to keep things usable. And if things aren't usable,
> people are going to try it, shrug their shoulders, and wander
> off to use something that works.
>
------------------------------------------
9fans: 9fans
Permalink: https://9fans.topicbox.com/groups/9fans/T767651d6223b6d46-M087307168ad5816478fa6fc9
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription
[-- Attachment #2: Type: text/html, Size: 7699 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [9fans] Self Hosting and 9front Development
[not found] <7956CA0278F01E17AD6DAF7C4C24069B@eigenstate.org>
2025-06-02 23:07 ` [9fans] Self Hosting and 9front Development ron minnich
@ 2025-06-03 7:13 ` sirjofri via 9fans
2025-06-03 10:31 ` Steve simon
2 siblings, 0 replies; 3+ messages in thread
From: sirjofri via 9fans @ 2025-06-03 7:13 UTC (permalink / raw)
To: 9fans
Hi,
nice write-up, I can second every thought and feel the same.
However, I think it's worth looking at the beginner's journey - and I think there are many. I'll share my own, maybe that helps you understand a bit more about certain issues I (and probably others) had.
For the background, I probably was the last generation to learn basic programming in a blue editor. That was on DOS, when windows 2000 was already out and windows XP was around the corner. I was very lucky to learn all that and at some point I learned about Linux (thanks, Dad). Starting with some suse Linux, I learned a lot about different linuxes, posix, Unix and so on. I also touched different OSes a bit (MacOS, Haiku, Menuet/Kolibri), but only as a visitor.
During my Linux journey, I encountered Luke smith. That was before he moved into the forest and made more Linux content than anything else. Thanks to him, I started to use suckless software and learned about Plan 9.
My first year of plan 9 was me using Linux and reading plan 9 papers (including fqa), as well as playing around with inferno. I liked the idea of inferno, but I didn't really understand what inferno was for, and I wasn't deep enough to really use it.
At some point (after around a year) I started to use plan 9 (9legacy, later 9front) in a qemu. That is, I installed it and played around from time to time. I wasn't really able to do anything useful with it. People might remember me from my time on gridchat, back on mycroftiv's grid, and thanks to all the community there, I was able to learn more about using the system.
At some point, I got a thinkpad T61, which I installed 9front on, and basically I started daily driving it. It was the only system I used personally, my professional job enforced windows. That was when I started writing software and really using the system. I tried to explore every corner of the system, and I believe I have quite a solid understanding of it now.
Eventually, I got a VPS to run my website on. It now also runs mail and a few other services. I installed 9front on everything I had and that was capable of running it. I started working on the ninephone project, as well as a few other bigger projects, like gpufs, and many smaller projects (most of them you can find on shithub/sourcehut).
What I think of my journey:
It took a long time. It took 1 year until I started to use the system, and another year to fully understand it. It's almost impossible to apply any knowledge from the original papers without touching the system (kudos to Daniel CyReVolt) and asking the community (thanks everyone).
The most practical piece of written guides is the fqa, as well as one or the other blog post. Even the man pages sometimes only show how a tool works, and not what you can do with it and what it's used for. Plan 9 being a bit unixy, it relies on chaining tools together, and how many things just fit together, and to what degree!
In interaction with other people, I think namespaces are hard to grasp, but they're one of the easiest things if explained correctly. Other components like factotum, devdraw, /srv, /net are way more complicated to explain without showing.
The fqa tried its best to show plan 9 from a more practical (and historical) side, the papers highlight the technical, theoretical side. The man pages show the details of the implementation of the individual components.
I think those cover many aspects individually, but a guided tour is somewhat missing. A tour that uses all these aspects to guide a user into the system. A inst/start for learning. A guide that doesn't focus on one aspect, but shows enough of each aspect so that a user can understand what they are doing and are empowered to apply what they're learning.
That's what my plan was with the "serious guide to plan 9": starting with the basic principles like resource abstraction as filesystems and logging into a system, to how the individual components play together to form a powerful unit for what the user wants to do. I'd like to see it covering every relevant piece of the system, and going deeper into the inner working chapter by chapter. After the first parts for the user, there would be additional parts for the developers, which shows programming on programs and later the kernel.
The goal should be, not documenting things there are, but showing everything that's needed to start doing whatever. For example, I wouldn't want to show every single tool in /bin, but I would want to show that tools are in /bin, how they end up being in /bin using namespaces, how to find more info about them using the man pages.
I believe that this is also part of the goal of the fqa, and in some chapters it does it very well. In others it's more focused on getting the system running (installation), which is important, but it doesn't really help a user to learn the system.
I know there's also nemo's paper, which I didn't really read yet. At first glance it feels like it's very technical and it also focuses on the technical side of resource abstraction, but I might be wrong.
I believe a guided tour/learning guide should also be written with a mindset of teaching, not so much with the thought of explaining and documenting. I think this is a lot more work than just writing up how things work, and it probably also involves user tests, as well as making good images (screenshots and graphics).
I don't want to make this mail any longer, and it's long enough already. Thank you for coming to my ted talk.
sirjofri
------------------------------------------
9fans: 9fans
Permalink: https://9fans.topicbox.com/groups/9fans/T767651d6223b6d46-M0f2083fe396cea2fc039458b
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [9fans] Self Hosting and 9front Development
[not found] <7956CA0278F01E17AD6DAF7C4C24069B@eigenstate.org>
2025-06-02 23:07 ` [9fans] Self Hosting and 9front Development ron minnich
2025-06-03 7:13 ` sirjofri via 9fans
@ 2025-06-03 10:31 ` Steve simon
2 siblings, 0 replies; 3+ messages in thread
From: Steve simon @ 2025-06-03 10:31 UTC (permalink / raw)
To: 9fans
It is very rare that I agree with an email so vehemently!
Sadly I no longer use plan9 (I appear to have become a go programmer on a Mac).
However during the 15 years I used it daily as my desktop I learnt a huge amount and added/fixed quite a bit.
I miss it and hope to come pack to it one day, in the meantime I just watch the sidelines.
-Steve
> On 2 Jun 2025, at 23:16, ori@eigenstate.org wrote:
>
> using the system needs to come first.
------------------------------------------
9fans: 9fans
Permalink: https://9fans.topicbox.com/groups/9fans/T767651d6223b6d46-Mff0cb3f10ffb7738529309cd
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-06-04 10:28 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <7956CA0278F01E17AD6DAF7C4C24069B@eigenstate.org>
2025-06-02 23:07 ` [9fans] Self Hosting and 9front Development ron minnich
2025-06-03 7:13 ` sirjofri via 9fans
2025-06-03 10:31 ` Steve simon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).