Hacker News new | past | comments | ask | show | jobs | submit login
How I Switched to Plan 9 (cat-v.org)
313 points by Seirdy 85 days ago | hide | past | web | favorite | 161 comments

I don't have to use plan9 to value what the 9fans did.

I don't have to use plan9 to secure the benefit of exploring models of software, systems, networks which plan9 explored.

I think that you have to swim very strongly across some currents, to decide to "be" in plan9, but its no different in that sense to choosing to live behind a Nokia brick phone, or only using pen and paper in meetings. Others may work effectively in their kanban on a laptop, but the decision to stop using the parts of your brain which type, and instead use the parts of your brain which shape semantic intent, by writing, is quite large.

And in that sense, deciding to use plan9, or even just a tiling window manager, or to disable image load in web by default, or to use Markdown or Org mode to do thing instead of reaching for some packaged electron app, or to focus on GO or Haskell or whatever the thing is, which forces you to think about what you are doing in code, That decision may be swimming against the stream, but its big.

Plan9 is big. Its not for everyone, and I decided not to invest because it had moving parts I didn't feel confident I understood and at the time I looked at it, was wedded to multiple independent instances of boxes I didn't own.

Now, it is probably entirely possible inside containers or VMs or something, but I am content to know I could.

(I am however, using pen and paper more in meetings)

One interesting trick about only using pen and paper, is that your Handwriting becomes like a quick indicator to your state of mind.

If I'm taking notes and they come out like chicken scratch it means I'm usually too agitated and just rushing. Even just writing slower doesn't help. You basically have to actively relax yourself, breathe in/out, and collected yourself.

This so much. Handwriting quality helps me decide which paper should be tossed. If its agitated like you describe, the value of the information on it is probably trash and therefore it goes into the trash.

Hmm I unconsciously resort to my notepad when working through problems. This should be part of my mindfulness routine :)

Wow. I think I now understand why I work so much better when using pen and paper to take notes. Thank you.

This is an insightful observation. What are your thoughts regarding why most choose to swim with the stream, instead of exploring other models?

Because perhaps you see an OS not as a hobby, but as a tool, and you may swim across other streams in life such that you feel your time is spent in better ways.

For instance, I enjoyed being a janitor for my Arch Linux install for a while - it taught me a lot - but eventually I switched to MacOS because I actually wanted to ignore my OS and focus on the code I was writing and connecting to WiFi reliably.

If you are putting your time into something, it makes some sense for it to be something you value.

> actually wanted to ignore my OS and focus on the code I was writing and connecting to WiFi reliably

I feel this. I was a distro-hopper for years. I eventually settled on just using Ubuntu LTS for ease but definitely benefited from the time I spent nurturing my arch laptop.

Yeah I much preferred Arch because every moving part was one I'd installed, so there was less mystery.

However, still very annoying having to rearrange meetings because you did an upgrade and some X11 config needed to change and so you can't even boot a GUI for a bit.

It's significantly easier to get to team-based outcomes if you can adhere to a common platform. Finding a common platform by swimming against the stream is just harder. Larger enterprises, which can provide jobs, tend to want team. The history of science/technology is littered with companies which had the courage to give small groups of people budget and time, to do things. We don't often hear about the failures, but I am sure there are many.

Bell happened to be one of those companies. You could walk into another door in Bell (or AT&T) and drive to a room much less tolerant of swimming against the stream.

>It's significantly easier to get to team-based outcomes if you can adhere to a common platform.

Both the good outcomes and the bad outcomes. Cue the recent Slack WYSIWYG editor woes.

Slack used to have an IRC gateway, allowing anybody to peruse it from any OS, on any device, with any UX. The Slack corp. chose to supply UI for one popular platform (Electron), and cut off[1] any other means of access. This single platform focus did put Slack in full control of the UI and UX of the messenger, and able to force the WYSIWYG editor on all users.

Without the overwhelming dominance of one platform (Electron), Slack most probably would feel the need to maintain the fully featured IRC gateway, letting people interface with it fully via alternative means.


[1] the APIs are un(der?)documented, changing, and you are on your own

I use wee-slack with weechat, works great. It is definitely a better experience than when I was using the irc gateway.

Whenever I see a new IM service pop up, my first two questions are:

1. Is it FOSS?

2. Can I use it in Weechat?

That's really all that matters to me. I currently use Weechat to handle IRC and Matrix.org.

I've had to use Slack in an internship in the past. Thanks for mentioning wee-slack; I'll keep an eye on it should I be subjected to a proprietary IM service again.

irccloud.com (needs a paid account) will provide an BNC interface to a slack - been using that for a while to talk to customer slack setups, works really nicely.

Peer pressure. As one of those who consciously refused the smartphone there are people in my environment who won't let any chance go by to tell me that 'if I had a smartphone' and then followed by some inane reason that is probably one of the reasons why I don't have one.

I can see people giving in just to get rid of that kind of continuous low key harassment.

Evolution. Society works better when most people fall in line with the major consensus narrative. Even a society with a suboptimal strategy that everyone follows is better than a society full of second-guessers that doesn't get anything done.

That's not to say that you need everyone to be a mindless drone, but just like reinforcement learning works best with a healthy balance (usually like 90/10) of exploitation and exploration, society works best when a few people explore new options and the majority follows the emergent consensus.

In addition to what @ggm said, consider why software projects tend to employ external libraries instead of rolling their own solution. The time investment of reinventing the wheel is often immense, even though the eventual result may be objectively superior.

I think one of the subtle benefits to using well-known libraries is that they've already discovered and handled edge cases.

Per most of the reading I've done on "Why software development time planning is so difficult", the problem lies with bounding uncertainty.

We're pretty good at estimating business as usual, but much less so at producing a number when "there are 3 items, each of which has a ~10% chance of adding 10x happy path time" holds. Or even identifying it might hold!

That someone has already found a way to thread the minefield, or dealt with any unavoidable mines, is valuable.

This also leads to extreme bloat in a lot of cases, but is cheaper to build (not necessarily maintain), and always gets chosen.

To me this is part of a need to integrate my digital life. I understand the swimming against the tide here (recovering FreeBSD laptop user) - because an integrated life is a controllable life

I want tools before I want services

I want an agent that has access to my digital life where ever that is. I want that agent to be the expression of my tools - that is my first and possibly only service

I want my mobile device to keep and give me access to my digital footprint - my phone calls, text, gps locations.

I want a message in Whatsapp and in facebook and in email to just be a message. if that breaks someone's business model I do t care.

I want to be able to review my digital actions - what was the name of the video I stupidly watched at 1am last night - let me review that each week so I can improve my behaviour - not have my behaviour controlled

I want this for each member of my family too

You've managed to put into words something that really bothers me about how software and devices are designed and used at present. An extension of my physical being (which is increasingly how devices are used) should probably be as independent as possible, not a third party service.

> I want to be able to review my digital actions - what was the name of the video I stupidly watched at 1am last night - let me review that each week so I can improve my behaviour - not have my behaviour controlled

It's almost 2020. Forget the flying car, why does my web browser still not provide full text history search if I want it? It's text, and this isn't the 1980s! Why can't it snapshot the textual portion of the DOM for each page I visit if that's what I want? Half terabyte SSDs with 700 MB/s sustained write are $80!

That came, worked very nicely, then went with the first version or two of Google desktop search. Would search web history, local documents - word and excel included, and present it in an interface much like Google search at the time. Far as I remember all data was kept locally - it wasn't the Googleplex hoovering up yet another terabyte of your data trail or I wouldn't have touched it.

Then it started to deprecate the useful part, gain a GUI, and morph into a second-rate widget engine. By the last couple of versions I came across it was a mostly useless, very second rate copy of Konfabulator (later Yahoo Widgets). It no longer had any local document and web indexing.

Miss it an awful lot.

Another seriously nifty thing it would do if you allowed it to was to collect rss feeds from sites you visited and magically sift out stuff it knew I would be interested in.

I had no idea. How is something so amazingly functional and immediately useful allowed to disappear? It just seems like such an obvious thing to build into a browser engine.

No idea - a quick skim, and the first version was the one I liked most. It would search Thunderbird emails too with a plugin, was instantaneous, and for a little while was a huge productivity boon.

With a bit of thought, the later versions did retain some local search, but made it clunky and awkward. I forget quite how, only that I liked it less and less. Course before too long it was discontinued entirely. Odd really as it, to me, is the obvious use of my computer for my web activity...

Here's the original press release and a couple of screen shots: http://googlepress.blogspot.com/2004/10/google-announces-des...

> It would search Thunderbird emails too with a plugin, was instantaneous, and for a little while was a huge productivity boon

For the local filesystems full-text almost instantaneous search, definitely check Recoll: http://www.lesbonscomptes.com/recoll/index.html

Recoll will index an MS-Word document stored as an attachment to an e-mail message inside a Thunderbird folder archived in a Zip file (and more...). It will also help you search for it with a friendly and powerful interface, and let you open a copy of a PDF at the right page with two clicks. There is little that will remain hidden on your disk.

Baloo and Milou on the KDE desktop is often decried for performance reasons, but is quite powerful.

I like how it can perform full-text search in my documents (pdf, etc). It also searches your e-mails if you use Kmail (and contacts, events, etc if you use other KDE PIM tools).

I only wish it was a bit less eager to extract files on underpowered laptops, and it would be nice if it could OCR pdfs and tag images (facial recognition, etc).

For the PDF/OCR task I just discovered Paperwork, I think it's a Gnome project.


Seems apropos.

At a guess, it wasn't amenable to ad-monetisation and people weren't willing to pay for it.

And the average person has already moved far more of their life to "the cloud" to free themselves of the burden of local system administration.

Check Memex!

Full-Text Search your Web History & Bookmarks


Not affiliated.

Someone finally did it, it's completely local, and it's MIT licensed! Based on GitHub history, development only started about 3 years ago.

And: It doesn't make your browser crawl, which still surprises me.

I have to admit that I don't use it much (I've got it mostly hidden, there are several tweaks related to visibility), but it is amazing, as you put it, that someone finally did it, and got it mostly right!


MIT-licensed, which means that if they have any decent ideas in there Apple and/or Google can just take them all and slap them into the latest Safari or Chrome. AGPL would really be in the best interest of their codebase.

Maybe the authors don't mind if their ideas get incorporated in other projects? Maybe they are more interested in spreading their ideas than owning them?

I'm not a lawyer, but my understanding of the GPL is that the purpose isn't to retain ownership, it's to use ownership (granted under copyright laws) to ensure that the ideas can continue to spread.

The GPL doesn't prevent forks, it doesn't even prevent someone else profiting off the fork, it just requires that the fork can also be shared freely.

Exactly why I used the MIT license, even if it is on my ultimately non important stuff. I'd rather it was out there (potentially) being used by anyone that wants to for whatever purpose.

That sounds like a success? Not everyone is interested in getting their ego stroked.

Thank you very much for this!

thank you!

Most of that seems oriented at full, manual archival rather than automated (lightweight-ish) text caching for search operations. ArchiveBox (https://github.com/pirate/ArchiveBox) looks promising, although it isn't capturing the "live" browser feed. Readable-Web Proxy (https://github.com/fake-name/ReadableWebProxy) also looks interesting, but seems to be external as well.

Maybe I just need to suck it up and roll my own.

I was going to permanently save my browsering history by running all my browsers through squid. If squid's StorageManager supports it, I'd put page storage in Postgres, then use PG's FTS with a light UI around it.

I played around with it for a year or so (had three consecutive Raspberry Pis running it as a VNC/SSH console and general tinkering machine), and quite enjoyed it, except for two things that turned out to be the ultimate dealbreakers:

* no truly useful self-hosted browser (when you can’t even log on to your home router to troubleshoot things, an always-on console is useless)

* mouse chording (I understand the history of it, but it was a constant pain)

I would have loved to (for instance) hack my Chromebook into running Plan 9 natively, but being fundamentally unable to use it without an external mouse made it impossible. And no, key combos are not the answer here.

Another thing I played around with was running Inferno on the Pi (I have a bunch of resources for both listed on https://taoofmac.com/space/os/Plan9), and that was a lot of fun (for the low-level stuff).

Now for the controversial bit:

Porting a full browser to Plan9 is not likely to ever happen, but I do wish the community would make an attempt at modernizing it ever so slightly rather than assuming it’s perfect (I’m on the 9fans mailing-list, and it is a fascinating cross-sample of hard-boiled traditionalists and almost ascetic pragmatists)

Plan 9 as a whole is a pretty good IDE for general development - excels at C, shell scripts, Go, and similar. Having been created explicitly to OS differs from older (POSIX/VMS era) OSes by making GUI, architecture portability, namespaces, user-level filesystems, software services, network transparency and distributed computing first-order concerns.

For those unable to switch outright, I wholeheartedly recommend plan9port[0] - an almost complete set of utilities and protocols from Plan 9, ported to run in Linux, MacOS X, and OpenBSD userspace. It's being actively developed[1] by the 9fans community.

plan9port comes with both sam and acme[2] programmers' text editors.


[0] https://9fans.github.io/plan9port/

[1] https://github.com/9fans/plan9port

[2] https://youtu.be/dP1xVpMPn8M

I know I can google this, but I am really looking for a more personal answer that others might also gleam insight from.

What are the efforts like for non x86 architectures, if any exist?

Are there working kernels for arm as there is for *nix with things like Raspberry Pi?

I haven't started my IoT journey yet. I am wondering if plan9 would be stable enough to tinker with in that space and in order to capture two birds with one trap.

[edits made to cleaned up the original mess]

Certainly runs on Raspberry Pi - there are several mentions to that effect.

Sadly I can't help you more - best ask on mailing lists[0] or on IRC[1].

Historically Plan 9 was developed from grounds up to support several architectures, so in this case you're really asking about drivers for specific peripherals.


[0] http://mail.9fans.net/listinfo/9fans and http://lists.9front.org/

[1] #plan9 and #9front and #cat-v on irc.freenode.org

9front runs wonderfully well on the Pi and other SBCs.

#cat-v on OFTC is very helpful if you want to try it out.

I have an odd fascination with people who manage to use Plan 9 (they strike me as delightfully insane). It feels like I'm going down a Discordian reality tunnel whenever I read things like this.

Every time I always want the article 'WHY I Switched to Plan 9'

"Because it’s there" (George Mallory, when asked why climb Mt. Everest).

Some people look for the most exotic art. Some people seek the most unusual foods. Some people want to know exactly what's out there in the universe (enough for humanity to keep chucking probes into deep space, no less). And, some people want to use their computer in a new way. Some of those people even end up deriving practical value from the exercise, but I would hesitate to claim that that's the reason we do it:)

My guess, and paraphrasing: it's like software that blocks out distractions. No modern web, he stays mostly focused on his job, which is writing. The software works in a way that suits his sensibilities - consistent, minimalist, quirky, undistracted by FB and Youtube. "More UNIX than UNIX", if you will.

Some people eat aeroplanes. He uses Plan9.

If you have made the switch from Windows to Linux, you probably have got that feeling of satisfaction, of things working as expected. Maybe getting everything working was harder, but it felt right. That is the feeling you get when you switch from Linux (or other Unix) to Plan 9. Yes, you lack a web browser, but it is a beautiful system. Then, there are a reduced group of people (like sl) for whom this beautiful system just works.

It is the same reason people write programs using lambda calculus or make fundamental physics research instead of engineering. We even get something useful from it from time to time, but that is just a very nice side effect. Or, as Feynman put it: "it's like sex, it may give some practical results, but that is not why we do it".

Plan 9 is the successor to UNIX. Inferno OS is the successor to Plan 9. If you use either for a while, you'll appreciate how well-designed the system is. That, in itself, is valuable. It doesn't need to bring a profit to your startup to justify its existence and use.

> We don't read and write poetry because it's cute. We read and write poetry because we are members of the human race. And the human race is filled with passion. And medicine, law, business, engineering, these are noble pursuits and necessary to sustain life. But poetry, beauty, romance, love, these are what we stay alive for.

From the movie Dead Poets' Society. Emphasis mine.

I think it's just an evolution of distro-hopping even though I don't think people like to admit it. After you've tried all of the major linux distros and you're still looking to play around with something different, the next step is to jump to something like BSD or Haiku or Plan9. You might not get a lot of people openly admitting this though, seems like it's looked down upon to try out something new like this "just for fun" versus having some super specific technical reason. Then again, the "just for fun" distro-hoppers may not stick with Plan9 long enough to tell anyone about it before they move on to something else :P

Can confirm. And I'm not embarassed to admit it.

When did wanting to just have fun become shameful?

not sure if BSD should bee in that list with Haiku or Plan9

There's a few BSDs that have 'multimedia and the modern web'

I didn’t mean that they aren’t usable like that, but that a lot of people try them out after hopping between a bunch of Linux distros first. I know people who use FreeBSD as a daily driver and do all of the normal stuff your average user would be able to do in terms of web browsing

There are far weirder Discordian reality tunnels you could go down. Like the MVS 3.8J community – tinkering with a 1970s vintage IBM mainframe operating system running under emulation (that version was the last version of MVS that is legal to distribute, IBM put all the subsequent versions under restrictive license agreements.) Or, people who create enhanced versions of TempleOS, introducing to it the heresy of networking.

> Or, people who create enhanced versions of TempleOS, introducing to it the heresy of networking.

"Defiled OS". That might be a fun adventure on FOSS trolling.

(this is where I'd put some sort of Windows Vista joke)

I've always wanted to care enough to try plan9. Growing up, we had thin clients in the library, and I've always held a little romance with the idea. So my retrofuturistic dream is a plan9 phone. Not really sure why; just seems cool

The most fascinating part is dismissing other OSes as "inferior".

I think the real flaw is thinking that there is single axis of quality: really, there are multiple axes. There's code quality: Plan 9 probably is superior to Linux, Windows or macOS. There's popularity: Plan 9 is inferior to the Big Three. There's orthogonality: Plan 9 is superior to the Big Three. There's availability of fundamental software like w web browser and emacs: Plan 9 is inferior to the Big Three. There's performance: Plan 9 might actually be better because it does less, but worse at truly intensive loads? I don't actually know. There's API surface: Plan 9 has a much smaller API, which is both superior (cleaner) and inferior (less features out of the box) — I think it's a net win, but reasonable people can disagree.

That said, once you've played around with Plan 9's filesystem ideas, they are IMHO clearly and inarguably correct, and should be adopted.

In UNIX systems you already can adopt many of plan9's design ideas. For example, any application can open and read files to communicate with other apps. I think the main problem with plan9 is that what it offers can already be done in other flavors of UNIX. So, what remains as innovation is the software itself, which is not enough to make users adopt plan9.

> In UNIX systems you already can adopt many of plan9's design ideas.

I don't think that's really true. You can't do the sort of things with namespaces and filesystems that one can do on Plan 9 in e.g. Linux.

The sam editor is interesting. I use iterm and tmux over mosh, has anyone figured out a simple text editor that supports cursor based cut and paste? I really just want a notepad-like editor, for the rare cases I’m not using Sublime/Atom/VSCode for a remote. Come to think of it, I also want cursor based cut and paste on the command line, and don’t understand why that’s not the default in 2019, and we’re all pretending that we have a physical tele-typewriter.

Because compatibility. All the existing text programs assume the physical tele-typewriter emulator. There have been many attempts to modernize the essential parts of the text console experience and do away with the inessential parts, but they always fail to catch on because people expect to be able to run programs like 'top' and 'ls -la' and 'pstree', which expect to format their output on a handy fixed width character grid. And you can't easily patch mouse selection into the existing system because there is too much seperation between the terminal and the content - the terminal is not aware of the intended text formatting, and the program is not aware of where you clicked. Fixing this would also require patching the world.

If you want to live in the future, you can't use programs written in the past. There are many fine GUI text editors: leafpad is your basic bare-bones notepad-alike, and for my money Kate is the best 'notepad++' mega-text-editor that's still light enough to start instantly.

> And you can't easily patch mouse selection into the existing system because there is too much seperation between the terminal and the content - the terminal is not aware of the intended text formatting, and the program is not aware of where you clicked.

I'm sorry, but this is plain wrong.

gpm [0] supplies a mouse server for the console, and has been around for a very long time (the oldest release I could find was 1995). SSH, nano, vim and more all understand the events driven by it. This should even work under a raw tty, rather than a terminal emulator, in any shell, from ash to zsh.

The terminal absolutely understands the mouse, you just need to enable the bridge that lets it all work.

[0] https://linux.die.net/man/8/gpm

Does GPM let you move the insertion point in nano or vim? It didn't when I last used it 12 or 13 years ago. All it let me do was select a region of text from the screen plus the scrollback buffer of the linux console. Then I could choose to copy that region. And IIRC, the copy had a newline wherever the text being displayed had a newline and where one line of the linux console ended and the next line began, so if what I was copying had any lines that ran longer than the screen width, I'd have to manually remove the second type of newlines after pasting.

And when the user selected text using GPM, the program (e.g., nano) never learned of it: it was local to GPM and the linux console.

The man page you linked states, "The selection mechanism is disabled if the controlling virtual console is placed in graphics mode, for example when running X11, and is re-enabled when text mode is resumed," (then goes on the describe how sometimes it does not get re-enabled because of a bug).

Can a modern PC even be put into text mode anymore? (Honest question: I do not know.)

Have you ever gotten GPM to work with X11 or Wayland?

> Does GPM let you move the insertion point in nano or vim?

If you enable mouse support. (set mouse for nano and set mouse=a in vim).

> Have you ever gotten GPM to work with X11 or Wayland?

That'd be rather... Pointless. X11 and Wayland already allow the mouse to work without GPM. Just enable the mouse in nano, vim or whatever, and it'll work.

Whatever terminal-emulation app (e.g., Gnome Terminal) you are using will allow you to select text in the app's window, but nano or vim will never know about it. I.e., the user's mouse gestures are never transmitted to the program (e.g., nano) on the other side of the pseudo-TTY (PTY).

So for example, the user cannot use the mouse to move the insertion point in nano.

> So for example, the user cannot use the mouse to move the insertion point in nano.

That is not the case if you enable mouse support, as I've said.

Try it. Add:

    set mouse
To ~/.nanorc

Open a file, and click. The insertion point will move.

Oh, OK. Good to know. Thanks for your reply. vim, too?

The vim command needed to enable support is:

    set mouse=a
But yes, it works basically the same.

> the program is not aware of where you clicked. Fixing this would also require patching the world.

No, that exists for a long time and is widely implemented among terminal software. Demo: https://github.com/tinmarino/mouse_xterm

Leafpad hasn't been maintained in the last decade or so, is buggy and based on GTK 2. Please don't recommend it to anyone. Gedit is much more sensible as a replacement.

Mousepad is also pretty good and is actively maintained.

Nano, the simple editor every one loves to rag on for being overly simple, does actually support cursor cut n paste. (Hold shift and move the cursor. Then cut or paste.)

    set mouse
    set nowrap
    set softwrap
With those three lines in ~/.nanorc, it now allows you to click n drag the mouse, and may work over ssh, depending on your terminal support, and wraps lines without inserting actual breaks.

It effectively is Notepad, as far as I'm concerned.

nano isn't very weak, I have modified nanorc substantially and also have binded many keys. It works better than, say, notepad++ on windows.

For those who aren't touch typists, or occasional users, nano is just more comfort than vim or emacs.

And there is a editor named `micro`, which is similar to nano but has more features including bracket completion etc.. I am delaying switch because it is written in go (being unavailable in repos) and anyway I haven't found time to configure it. But it is scriptable in lua..

Try using vscode remote over ssh, it connects to the machine over ssh and the experience is mostly seamless. Highly recommended.

Last I checked, it does far more than just connect to the machine over SSH. It pushes up a nodejs executable and then also pulls down other stuff from the web. And it will also leave an agent running on the host you ssh into, even after you exit vscode.

I can see this being okayish when logging into a dev EC2 instance or something ephemeral but it's not something I would ever want to do on something important.

Plan 9's Acme (a GUI editor similar to sam) is just fine when ran over LAN - no felt lag at all. Not sure how well it handles modern-day internet, but quite possibly would be practical.

And yes, it uses mouse-based select/cut/copy/paste, with line- and block- level operations.

It is based on how the whole Oberon OS UI works, which took its idea from Xerox PARC Workstations OSes.

Basically on those systems you can expose code as UI callable operations, select code and give it to them.

There's a clone of notepad++ that works on Linux, called notepadqq.


While it may or may not be a "simple" text editor, Vim supports cursor based cut and paste with the appropriate settings in .vimrc (I forget off the top of my head, it's something along the lines of "set mouse=a" to enable the mouse and then "set clipboard=unnamedplus" to make it interface with the system clipboard.)

Assuming a mainstream terminal emulator, [CTRL] + [SHIFT] + [C/V] works well enough most of the time. Copying that way does break if you tile though.

why do you think its a good idea to keep touching the mouse? it's not about emulating a teletype machine. it's about not picking up your (probably right) hand and moving it to the mouse constantly. this is something the teletypewriters of the past never had to deal with. I guess you don't yet have RSI?

For example pasting a piece of code in the middle of a typed line is more convenient with a “mouse” driven cursor.

I use a Macbook as my keyboard/trackpad combo, so my “mouse” is actually extremely close to the keyboard, and I don’t have to move my hand much.

It's about familiarity.

Learn those cursor movement keys combos and you'll find it ends up being way faster to get to the middle of your line to drop your ctrl-v that way once you're used to it.

Not that I mean to rag on you in a superior way like so many keyboard-only primadonnas like to. You do you, and I understand that for a lot of people the investment in learning this non-critical stuff just isn't worth the time.

Micro and geany are good CUA options.

I think `micro` will do.. not sure about cursor based cut-paste though..

> With the exception of multimedia and the modern web, all my needs are met.

Bit of a deal-breaker for me, personally.

I'm a bit of a luddite and a terminal junkie, and I would say that 'multimedia and the modern web' is still pushing 40-50% of my computer use.

Even for a work computer, if I can't easily open, say, Stack Overflow then it's a non-starter.

While we are at it - is there anything like plan 9’a factotum for Linux or OpenBSD? I’ve been reading about plan9’s security model over the last week, and I like it, but can’t find a modern isable port to an os I use.

Oauth/oauth2 are sort of a web equivalent but not really, first because they are web, and 2nd because they aren’t useful for things like pop3 in the same way that factotum is.

(And it would be really great if factotum would list permissions for apps that would support that thing, but... you can’t win them all)

I guess you can run it on Linux/BSD with plan9port

>9front ships with two web browsers, both written as jokes and abandoned by their authors in prior decades. Neither of them support Javascript, CSS, or anything beyond a meager subset of HTML.

The dealbreaker for the vast majority of users still remains then. If I recall correctly though when I tested it some time ago there was a software making possible to run Linux binaries and it could be used to run Opera. Isn't this possible anymore?

I run Plan 9 in a VM now and then which means I've never gotten that far into it. It seems very much like a solution to a problem that I've never had and as such doesn't do much for me. The article's author is a writer by trade and uses his laptop like a typewriter. Plan 9 certainly does that well and it's free of the many distractions that come with other OSs, so good for him.

> Is there support for playing video? No.

That could change in the near future.


What has this got to do with Plan 9?

Blows my mind how so much really is text manipulation. Not every thing though!

But, honestly, should it be? I personally find the idea of programming through text editors and files to be archaic and primitive. Superior models have been presented (Smalltalk, Lisp), but unfortunately have never caught on.

> I personally find the idea of programming through text editors and files to be archaic and primitive.

You have to think about 9p as an RPC protocol with files representing objects within the file server program. Reading/writing those files is how you interact with said objects. And it doesn't have to be text, it can be binary. Though text is used when a human has to interact with something. This is why you can do a lot of neat tricks using just a shell script as you can directly interact with a program using a standardized interface. No other operating system can claim such a high level of homogeneity.

As a hypothetical example, take the game Doom. We modify it to serve a file system to expose all of the players stats as a file tree. So a file called health is an rpc call to read and write the players health. This means you can '% echo 100 >/n/doom/player/health' to set your health to 100. It also means you eliminated the need to reinvent the wheel and integrate a console shell in the game. This saves the programmer invaluable time and eliminates duplicate code. Now we can use shell scripts or helper programs to interact with the game. And they can be in any language as all they have to do is open(/path/to/file) and read() write(). Imagine how much code you can eliminate and how much flexibility you gain by exposing your programs innards in such a standard manner? At this point, you might be thinking "So, if it's a file server, does that mean I can export it to the network?" Yes. You can have another computer mount that doom file server and interact with it.

You can also export your USB controller or other hardware using the same method. The level of flexibility is intoxicating and I don't care if it doesn't play youtube (that's what archaic and primitive 70's os's running in vmx(3) are for :-).

Modern plan 9 and resources: http://9front.org/ (highly active community and recommended if you pan to investigate) http://ants.9gridchan.org/ (pop on the grid and say hello! also recommended) http://postnix.pw/ (resources)

Legacy and Labs stuff (some activity still): http://9legacy.org/ (labs 9 and patches) http://9p.io/ (labs mirror, needs updating)

I agree. Program execution is rarely linear too in a codebase of any real size, so viewing the source of a program as a linear page of text doesn't make much sense.

I think there's an opportunity for a big player in the dev tools space to create a mainstream visual programming language and associated tooling. Many are trying, like Luna (https://github.com/luna/luna-studio) and Dark (https://darklang.com/) but I'm worried they're not established enough to gain traction.

Unfortunately programming with a text editor has become so mainstream that investing time in learning potentially better tools nets a lot of friction and not to much gain.

> viewing the source of a program as a linear page of text doesn't make much sense.

I don’t think we really view a file of source code as a linear page of text though, right? It’s a tree. Sibling nodes are often laid out either horizontally or vertically, and children are often wrapped in some type of brace and/or indented, maybe delimited.

I think the fact that editors usually a) align the textual boundaries of tree nodes, and b) allow syntactically/semantically-invalid states, sometimes gets people thinking about editing a character stream instead of a semantic tree.

As far as I'm concerned, that the source code is divided into files of linear streams of characters is a technical detail. My navigation isn't linear and my editing often isn't, and the editor I use goes through great lengths to enable just that.

Having used node-based programming environments extensively (Max, Reaktor) I am not convinced that that there is a ergonomically sound alternative to just writing the code in linear text files, but admit that there are probably domains where it is more suitable. I found it tedious and straining, particularly when you have to use both mouse and keyboard.

IDEs, shader editors, game design languages like Blueprint, LabVIEW are examples of mainstream tooling that aren't purely text based.

True, but I don’t think there’s a general purpose programming language whose tooling expresses source code as visual flows of data, that people would use in place of Go, Python etc.

You mean like Scratch?

Everybody thinks they want that until they try it on a real non-toy problem.


As someone that also has a background in digital circuits tooling, I think that the problem is the spaghetti codding that usually leads to monoliths.

While on text based languages, lack of modularity is kind of hidden and only jumps at you when you try to actually change anything, on visual languages it jumps right at you when you open a project.

Ideally, anything that requires panning or zooming, should be packed into their own little reusable building block, instead many try to package as much as they can into a single screen.

> While on text based languages, lack of modularity is kind of hidden and only jumps at you when you try to actually change anything, on visual languages it jumps right at you when you open a project.

I've worked on some projects using Node RED (https://nodered.org/) and have found this to be very true. It's painfully obvious that you're in for a fun ride when the code is literally spaghetti.

No, not Scratch :P

I think programmers should be trusted to write code as text, but the IDE should in some way help visualise how data flows through the system.

Intentional programming seems interesting. Reminds me a little of BDD frameworks like Cucumber (https://cucumber.io/docs)

It's not purely graphical, but MATLAB with Simulink definitely qualifies as both mainstream and general purpose from my perspective. A feature equivalent FOSS alternative would be nice though...

I've never dabbled with MATLAB or Simulink before (and I don't think I have the background to do so, at least for Simulink!) but I did just skim some of the tutorial videos.

What stood out to me was the instant feedback that's provided when the pipeline was modified; you can immediately see the ramifications of your actions.

That is exactly how LabVIEW and Blueprint are used.

But they're still specialised tools which work well in their respective domains. You wouldn't build a web API with LabVIEW.

I promise I'm not trying to pick on you here, but LabVIEW actually offers a module specifically for building web-based interfaces for your equipment (http://www.ni.com/en-us/shop/select/labview-nxg-web-module).

I'll agree that graphical languages don't seem to have caught on for general purpose programming, but some reasonably powerful ones certainly exist at this point.

Speculating as to why, I admit I have no intention of picking up a graphical language for my next project. Partly it's familiarity (I don't know what I'm missing), partly it's learning curve (expending effort when my current tools already work), and there's definitely concern about the ecosystem (manually writing bindings is never fun). There are also existing tools whose functionality overlaps to some extent - I've seen (and briefly played with) tools for some languages that will create flow diagrams from your source code. It seems like graphic-centric languages exist, but only gain widespread adoption for specific tasks that are frustrating or tedious to address without them.

When I had to suffer through LabVIEW (2009ish) my notion was that it LabVIEW-the-language might have potential to be a decent language, and that it was a shame that the only possible IDE for it (LabVIEW-the-program) was so horrible. The expensive license can't be helping mindshare, either.

(Now, that was long enough ago that I forget most of my specific opinions, and many of them are probably now outdated.)

Haha dw I'm more than happy to be proven wrong.

> I've seen (and briefly played with) tools for some languages that will create flow diagrams from your source code.

Could you share what those tools were?

I believe I was primarily using Architexa (https://github.com/i3labs/architexa), but it was a number of years ago when I was working exclusively in Java.

JetBrains also provides a few diagramming plugins, but I've never used them.

I haven't yet come across tooling that does the same for C, C++, or D. This response inspired me to take a look though, and I did find something for Python (https://stackoverflow.com/questions/45238329). Thinking about it, the instrumentation approach taken there might actually work fairly well for most systems languages assuming you don't have any dead (or rarely called) code. Graphviz could be combined with the "-finstrument-functions" GCC flag and a few supporting data structures. Templated code would be tricky to deal with though.

Edit: Just came across CppDepend (https://www.cppdepend.com/). It's proprietary, but appears to be incredibly powerful at first glance. See its dependency analysis in particular (https://www.cppdepend.com/dependenciesview).

No you would build it with Biztalk or OutSystems.

Sure they have caught on, among the C++, Delphi, Java and .NET communities, less so among other ones.

IDEs are the continuation of those models.

Excel does just fine.

Excel is too easy to abuse. Spaghetti formulas is just as bad as spaghetti code, especially if your business happens to run on Excel.

Spreadsheets would be much more maintainable if people separated data from the view.

It's an interesting concept, and probably appeals to the Bash wizards, but I don't think it's the way forward. I think a more modern alternative would be to have all system components expose a standarized API, kind of like REST endpoints for the OS. The reply could be standarized binary or even JSON. It would still be better than text, and much easier to parse.

9p is perhaps a bit more advanced/clean/general? than REST endpoints/HTTP. You can still use whatever serializable formats you want.

so... does plan 9 do emojis?

It does: Plan 9 was one of the first operating systems (probably the first) to go all-in on UTF-8

Actually, it was Ken Thompson and Rob Pike working on Plan9 who invented UTF-8.

What does he mean by text manipulation?

So, like how in Linux, a lot of system manipulation is presented as psuedo text files in /proc and and /sys, but expanded to the rest of the system. So like the window manager is manipulated by creating fake files (fake as in they don't exist in any persistent storage device) and writing text to them that describes the state of the windows. Rather than socket() and setsockopt(), under the hood it's opening something like /dev/net/tcp/google.com/80/ctrl and reading and writing text about the state of the connection.

Because of this the whole system is introspectable via cating interesting files.

Writing email. Viewing logs. Configuring servers. Setting reminders can be done in cron. Probably lots I don’t know about offhand too.


Server is giving the following error:


It's available via this HTTPS mirror if needed: https://archive.is/bVfPc

The reliance on a three button button mouse (buttons which sometimes need to be chorded) makes plan9 impossible to use on any modern Laptop. Many other aspects of the UI are completely idiotic (like pixel perfect mouse selection of words to execute commands). Which is a real shame because everything besides the UI is really great. But it seems like the elitist community is perfectly happy with the fact that nobody uses their software.

I think you said one good thing (the mouse is a problem) and one bad thing (the accusation of elitism)

The people who did plan9 did not do this, to support other people. It was a self-supporting community. If that imposes barriers which make it hard for others, its not elitism in the sense I understand it, because the barrier is functional not based on any other entry score, such as 'who you know' or 'what school you went to' -You just have to make a matching investment, to their investment.

I have a lot of respect for these people. I have never interacted directly with them beyond the tokenistic, despite my obscurity no mail of substance I have sent to them in times past was ignored, and if the answer didn't satisfy it was usually because I (like you) assumed they had acquired obligations and burdens facing me, regarding this code.

They're not looking for happiness in your use of this code, or your non-use of this code. They're looking for higher functional outcomes from things proved in this code which now filter out in other ways.

The people working on or using plan9 (front) today are different. Just look at the cat-v harmful section and you'll see the blatant elitism. They will keep the completely flawed concepts like the chorded mouse interface for ever for two reasons:

1. To keep normal people out

2. Because their "gods" (Richie, Pike, Kernighan, ...) can't ever be wrong. Claiming otherwise would be heresy.

Please don't call them gods, and please don't disparage them by the implication of how people talk about them. These are engineers, who made choices, which led to things, which have had huge import. They have feet of clay, like everyone else.

They get cranky with time-wasters. Its not a lifestyle.

Pike's forays into markov-chain fake identities writing in USENET is not perhaps his most shining moment. Its a student prank. He's notorious (by gossip mainly) as being cranky at the accolytes and the adulation. He is said to dislike it. He also is said to dislike people assuming they can debate "the big man" and do a take-down. I am sure Thompson and Ritchie got a shitload of this: I know in fact, because when I chaired a UUG meeting (AUUG) and they were invited guests, they had "minders" in the local Version-8 community who kept people at bay who were being tiresome at the conference socials. Rock stars get this. Its unavoidable.

I don't want to imply any special insight. None of them know me, or would give me the time of day absent some specific reason to engage, and thats fine and normal too. Why should they?

Unlike many others, they made choices which did not lead to them vesting billions and billions of dollars. Many other people made choices to use this bell IPR (which they freely gave away) and constructed huge edifices worth collectively in the Trillions of dollars. Very few people get to have this impact on an economy, let alone worldwide.

Thompson & Ritchie got the presidents medal for a reason.

Joking hyperbole isn't elitism, and the chorded mouse interface was repeatedly shown (with user studies and everything!) to be faster than a keyboard-oriented interface.

Plan9 tools are great to use on thinkpads since they actually have 3 buttons. Most would find a dedicated mouse more appropriate however (the vertical one with 3 buttons and a separate wheel for instance).

Plan9 workflow is mouse oriented and it's fantastic. Its keyboard workflow or the lack of it is infuriating, for me, your typical linux/vim guy. The linux mouse oriented workflow, or the lack of it, is equally infuriating for me now that I have used plan9(port), acme, editable dumb terminals, etc. So I hack it in my tools, however I can.

I would warn newcomers that experimenting with plan9 and its tools can create strong frustration :)

I have used p9p for years because I like the GUI (in different modern laptops, always without external mouse). Other people prefer huge IDEs, many people prefer vim or emacs, and I also known some extremely good programmers who just use notepad. And yes, I am perfectly happy with that.

There are still some modern laptops with three buttons built in -- primarily ThinkPads, but that's not a bad choice. For the rest, external mice work quite well.

That this is the top story on HN currently is one of those things that makes me think I should just stop looking at HN. Look, if you want to use Plan 9, go nuts. Follow your bliss. I guess. But the slice of humanity that finds this to be an appealing option is such a sliver of a sliver of a sliver of the total. How is this relevant to any vaguely reasonable person's life? Why would anyone upvote this Quixotic nonsense? Plan 9 may the be operating system analog of pumpkin pie, but what could it possibly matter given that it has zero ecosystem and zero uptake? Jeezum frigging crow. Give it up. It's dead.

Although I guess one nice thing is that is puts in perspective the fact that stories about tiled window managers and/or Arch Linux and/or God knows what else are always showing up on HN. Kind of like when you see someone, who you can never understand what the hell they're jabbering about, give a talk about something you already know, and you realize that there's no way in hell you would have understood the topic based on what just came out of their mouth. Which is clarifying, because it reveals that they just suck at explaining things, and it's not just that you yourself are a dumbass.

This is the kind of content that would be #1 years ago before HN became about regurgitating news about acquisitions in Silicon Valley. Remember that it's Hacker News you're reading. I welcome a return to those days.

This is exactly what I want to see on HN. Exactly because I will never use Plan 9. It makes me happy to know that someone, somewhere, is using it. Providing an existence proof that even something this unwieldy and obscure is for one glorious moment useful in 2019.

Honestly, if you hate reading about obscure OSs and seeing how people tweak their UIs... I'm not sure why you are bothering to look at Hacker News. It's... right there in the name; if you don't want to read stuff that's targeted to hackers, maybe read something else.


On-Topic: Anything that good hackers would find interesting. That includes more than hacking and startups. If you had to reduce it to a sentence, the answer might be: anything that gratifies one's intellectual curiosity.

Off-Topic: Most stories about politics, or crime, or sports, unless they're evidence of some interesting new phenomenon. Videos of pratfalls or disasters, or cute animal pictures. If they'd cover it on TV news, it's probably off-topic.

You probably should: the Guidelines outright note that the site isn't targeting something like 60% of the population, by the above.

> That this is the top story on HN currently is one of those things that makes me think I should just stop looking at HN.

Then maybe you really should. I'd much rather read about off-kilter operating systems and their fans that I would about yet another American centric political article or who got rich this week selling clicks to the highest bidder.

Its at the top of HN because its geeky and fun. For some of us this stuff is a hobby just as much as its a career.

> But the slice of humanity that finds this to be an appealing option is such a sliver of a sliver of a sliver of the total. How is this relevant to any vaguely reasonable person's life? Why would anyone upvote this Quixotic nonsense? Plan 9 may the be operating system analog of pumpkin pie, but what could it possibly matter given that it has zero ecosystem and zero uptake?

If you'd replace Plan 9 with Linux, this exact sentence could have been uttered in an equivalent forum anytime between 15 and 25 years ago.

If people won't use and promote great but unpopular stuff, things are never going to change, and we'll be stuck with the same crap we have today forever.

This kind of geeky stuff is exactly one of the fun parts of HN.

What are your top three most interesting stories on the front page? I'll upvote them for you.

One of the things I love about HN is how austere and information-dense the front page is. There are only two stories in the top ten I'm remotely interested in, and I figured that out in about as many seconds.

This is the Hacker News forum. Hackers are computer experts and enthusiasts that are interested in exploring the boundaries of computer technology or programming.

> stories about tiled window managers and/or Arch Linux and/or God knows what else are always showing up on HN.

Tiling window managers are a great tool that I use every day to optimize my work productivity. I like reading how others use them too, so I can learn new stuff from them.

This is one of those things that makes me wonder about synchronicity - was literally just browsing the Netflix queue and saw a title related to Plan 9 from Outer Space and it had me wondering about how Plan 9 was doing. Next glance at HN and whammo, right at the top - someone else was thinking about Plan 9.

”Is there support for playing video? No.


Watch this introductory video: https://youtu.be/6m3GuoaxRNM"

I think I'll pass.

> Even one accessed over SSH from an inferior operating system

...and I stopped reading right there. Different doesn't mean worse.

Hyperbole doesn't mean insulting

If one feels that Plan 9 is the best OS, every other one would be inferior. Worse doesn't mean bad.

Ah, no threat here. This post isn't a salvo in the platform war. Plan9 is not going to displace Android/iOS/macOS/Linux/Windows/ChromeOS/whatever.

Why do people think anyone else is interested that they stopped reading?

Applications are open for YC Summer 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact