Live data from Hacker News

Urbit: a personal cloud computer

doc.urbit.org

191–200 of 281 posts

Re: Urbit: a personal cloud computer

#191
post #174

Earlier quoted context omitted.

https://github.com/urbit/urbit/blob/master/urb/zod/arvo/ames... There are hundreds of lines of noise. This makes perl and forth look absurdly readable. What on earth do the directory and file names mean? I dunno how familiar people on HN are but the original author of urbit is Mencius Moldbug, a neoreactionary blogger. His style of writing is absurdly obfuscated and purposely impenetrable if containing some interesti…

Stepping away from the Algol keyword tradition is obviously a risk. At the same time, after using a keyword-free syntax for a while, reserved words feel really weird. Someone just emailed and pointed out that he couldn't check out Urbit on Windows, because it has a file con.c. Oh, right, reserved filenames. How are reserved words different? The difference is - you're used to them. Also, perceived usability (while it…

Is the given text your attempt at eliminating reserved keywords by using nonsense as keywords?

Other languages have simply decided to use contextual keywords, which preserves familiarity and flexibility.

Re: Urbit: a personal cloud computer

#192

The project is based on a fundamental insincerity, which makes me suspicious. All material about Urbit makes a big point of their minimal spec, again so in the linked piece: "The spec fits on a T-shirt and gzips to 340 bytes." What do people expect when they read a thing like that? I don't know about you, bit I'd expect that I could ignore the obfuscated strangeness of their higher level languages etc and just implem…

Run them. Now, what happens? Nothing, for now.

Can you explain what the actual problem is? "Only X lines of code" puffery is endemic in programming so I'm not sure why Urbit should be singled out.

Re: Urbit: a personal cloud computer

#193
post #75

I definitely was thinking about something like this , but not exactly this . I mean, yeah, the only way to save ourselves from damnation is to finally announce "enough of 70's!" and rewrite everything from scratch, so the idea is dear to me, but that actual implementation of the idea is… maybe "weird" is the right word. I'll continue reading, but I already have a feeling that after I'll get myself completely familiar…

I hope it will succeed but that it won't be the only thing that will succeed and that some will take inspiration from it to build something even better. Challenging the status quo as such is a useful property and showing that you can in fact reboot is useful as well.

That said, the more I read about it (a couple of hours so far) the more I'm thinking it will not succeed because of some of the weirder philosophical decisions that have already been cast in stone.

It's basically a variation on the 'landgrab' theme. Think bitcoin or the domain name system with half the space grabbed up by the ruling corporation, with an arbitrary 'ingroup' and a very large 'outgroup'.

You'd think that by now the whole point the web rammed home with its unbridled success is that open is better but I guess the mobile walled gardens have whetted the appetite of future wannabe corporate overlords.

Anyway, I still wish them best of luck, that's an economic move on my part, it costs nothing and I suspect they are self limiting enough that it will not achieve the world domination they are dreaming of. See also: the singularity.

Re: Urbit: a personal cloud computer

#194
post #177

Earlier quoted context omitted.

> The project is based on a fundamental insincerity, which makes me suspicious. All material about Urbit makes a big point of their minimal spec, again so in the linked piece: "The spec fits on a T-shirt and gzips to 340 bytes." Last I read something like this (I don't know if it was about Urbit or something else), it turned out that there was no IO included in that spec. So, useless for any real-world purpose, and a…

The IO are events, and the events come from unix (for example: signals, files and sockets). Urbit is not meant to replace Unix. "They call us, we don't call them" is the fundamental precept in play here. I assure you there is I/O in Urbit, the vanes include an HTTP server, a Hoon-interpreting shell which accepts keyboard input from a terminal, and a UDP layer for facilitating ship-to-ship communications. All of that…

> Urbit is not meant to replace Unix.

But I thought that was the long-term master plan. Isn't the whole point to extricate ourselves from eternal dependence on C and Unix ecosystem?

Re: Urbit: a personal cloud computer

#195

Earlier quoted context omitted.

Before accusing someone of being a "Hitler-reboot type of person", perhaps you should, you know, actually read what they have to say about Hitler. For example: Since most people are neither historians nor philosophers, the fact that Hitler was on the extreme Right, and this Reaction is also on the extreme Right, raises some natural concerns. Again: the only way to face these concerns is to (a) provide a complete engi…

I mean look, I understand what the philosophy is about, and I think it would never work in the real world. We've learned time and again that entrusting a lot of executive power to one person is a horrible idea - extremely exploitable and subject to corruption. Looks almost like a product of a deranged autistic mind. I have no interest in such asinine "philosophies".

> I have no interest in such asinine "philosophies".

I bet no one does .. the real issue is how to decide on what is "asinine". After all, why are your views and beliefs any more valid than any one else's?

Re: Urbit: a personal cloud computer

#196
post #175
post #171

Earlier quoted context omitted.

Man, I just wrote you a big long explanation of how you can update your filesystem even if your parent ship is gone, with shell command examples, but then my battery died before I had a chance to post it, and I'm totally not rewriting it now because I'm sure you don't care that much, and the real punchline is all of this information is about to be obsolete anyway. The long and the short is, there are carriers (I have…

Follow-up: As I suspected, regarding magnet links > The first time a client joints the DHT network it generates a random 160-bit ID from the same space as infohashes, and then bootstraps its connection to the DHT network using hard-coded addresses of clients controlled by the client developer. This sounds really quite like the process of creating a submarine, and reaching out to the carrier ~zod. The fact that the in…

Thank you very much for your long explanation. I really do care because I really like the idea of this. (Even I don't understand everything for now)

The question is: Why is my pier not trying to reach any of the available carriers then but only ~zod?

Re: Urbit: a personal cloud computer

#197
post #194
post #177

Earlier quoted context omitted.

The IO are events, and the events come from unix (for example: signals, files and sockets). Urbit is not meant to replace Unix. "They call us, we don't call them" is the fundamental precept in play here. I assure you there is I/O in Urbit, the vanes include an HTTP server, a Hoon-interpreting shell which accepts keyboard input from a terminal, and a UDP layer for facilitating ship-to-ship communications. All of that…

> Urbit is not meant to replace Unix. But I thought that was the long-term master plan. Isn't the whole point to extricate ourselves from eternal dependence on C and Unix ecosystem?

Some long term plans are crazier than others. I would like to have a machine that runs nock directly on the bare metal, but that doesn't mean it fits into the current architecture.

So far to my knowledge everyone running Urbit is doing so on a Unix system of one flavor or another. The point of "they call us, we don't call them" is not that Urbit never calls into Unix, it's that the set of reasons to reach out to Unix for one of the existing OS facilities is limited, restricted from the list growing any longer than absolutely necessary.

If your persisting disk filesystem evaporates from under you in the middle of operation, maybe Urbit can be prepared to deal with this, but as long as you have it there, might as well use it to allow the user to muck around with your internal representations in a way that is already familiar.

One of the problems Urbit doesn't currently seek to tackle is "a new text editor." Surely this is for the best, not because "a new text editor" is not an interesting problem, but for reasons that I think are already obvious to you.

Re: Urbit: a personal cloud computer

#198
post #129

Oh, Urbit! Where to begin?... First of all, this is staggeringly brilliant. You should pay attention to it in the coming months. I am not sure if it's destined to be the future, but I sure as hell hope it is. I had the privilege of interning at Tlon, the company working on Urbit's development, this summer. It owns most of the namespace (Personal cloud computer IP addresses, essentially.) and is where the architect of…

https://github.com/urbit/urbit/blob/master/urb/zod/arvo/ames... There are hundreds of lines of noise. This makes perl and forth look absurdly readable. What on earth do the directory and file names mean? I dunno how familiar people on HN are but the original author of urbit is Mencius Moldbug, a neoreactionary blogger. His style of writing is absurdly obfuscated and purposely impenetrable if containing some interesti…

As a coder of "various ability and background", I found that Hoon source code was a relaxing joy to read and write after a few weeks of dedicated study.

It is, believe it not, designed with readability as a first-class priority. However, a common meme in language design today is that "Code should read like prose." This sounds good, because it means languages are easy to learn. Who wants to learn a bunch of symbols and patterns and junk? I want to code (Python, JavaScript, etc.) now!

But when we program, we aren't dealing with the trivial knowledge English is efficient at exchanging in an email, or the subtly it portrays in a novel. We are talking to a computer. The ideas we explain to a computer are often much more complex than we can explain precisely with English in any reasonable amount of time, so complex we often lose ourselves in them.

Mathematicians and physicists gave up on making human language explain specific technical ideas long ago. Have you ever read a paper on cosmic topology or quantum field theory? There's a comforting padded bumper of English framing the ideas, but the reason the paper is published is in symbols which would appear to the uninitiated as "hundreds of lines of noise." The English is usually just an introduction.

I think Hoon is wonderful [1] because it has both power and predictability. Power lets you express complex ideas concisely and easily, while predictability lets you read and understand someone else's code without frustration. Perl is powerful because it's dense, but it does so at the cost of predictably. Mathematics symbols are terribly powerful, but wildly unpredictable [2]. Python is sort of powerful and sort of predictable. The seductiveness of English simulacra programming languages is that you often don't realize how much power you're giving up because it's just so relaxing to not think about symbols and patterns when your code has the predictability of an email.

Hoon's power is in the zoology of runes (Digraphs) and it's predictability is rooted in its homoiconicity. Every symbol on the keyboard is utilized to build powerful runes, each of which in turn is utilized to append predictable structure onto your AST. When you understand the basic patterns of these constructions and reductions, it's not hard to read someone else's library and understand it in an afternoon. I can't say the same for the Java SDKs I come across. [3]

I'm not saying it isn't inaccessible at first and doesn't take time to learn. I am saying it is worth it.

[1] It's my favorite language - It is just plain fun.

[2] That's why the English frame around a physics paper is there - It tells you what each symbol represents in this paper and what they're trying to do.

[3] The language design also includes several decisions to avoid the pratfalls of other homoiconic languages (Primarily the readability of Lisp), but those are explained in the docs.

Re: Urbit: a personal cloud computer

#199
post #177

Earlier quoted context omitted.

The IO are events, and the events come from unix (for example: signals, files and sockets). Urbit is not meant to replace Unix. "They call us, we don't call them" is the fundamental precept in play here. I assure you there is I/O in Urbit, the vanes include an HTTP server, a Hoon-interpreting shell which accepts keyboard input from a terminal, and a UDP layer for facilitating ship-to-ship communications. All of that…

Does that mean the IO events are part of the t-shirt sized spec?

The keyboard HID drivers are not.

The terminal (dill), HTTP server (eyre), socket UDP layer (ames), and shell (batz) are really expressed using the language in the spec. The filesystem (clay) has a reflection in your unix filesystem, but it's also really clay. In a very real way, even if they are not fully expressed by the Nock spec, they are built using the primitives that are entirely laid out there in Nock 5K. Hoon compiles to nock.

I feel like I'm trying to argue against "no true scotsman" but I don't know how else I'm going to convince you that the code "is really from mars," which seems to be what I want to tell you whether or not it's what you're really asking here.

Re: Urbit: a personal cloud computer

#200
post #174

Earlier quoted context omitted.

Stepping away from the Algol keyword tradition is obviously a risk. At the same time, after using a keyword-free syntax for a while, reserved words feel really weird. Someone just emailed and pointed out that he couldn't check out Urbit on Windows, because it has a file con.c. Oh, right, reserved filenames. How are reserved words different? The difference is - you're used to them. Also, perceived usability (while it…

Is the given text your attempt at eliminating reserved keywords by using nonsense as keywords? Other languages have simply decided to use contextual keywords, which preserves familiarity and flexibility.

Good lord, no! Hoon has no reserved words at all.

The nonsense words are all names. This is entirely a style choice. The actual name syntax is roughly Lisp's - for instance, (my-long-function arg1 arg2) does the same thing (roughly) in Hoon as in Lisp.

In the "lapidary" Hoon in which most of the kernel is written, facets (variable names, roughly) are meaningless TLV strings, usually CVC (consonant-variable-consonant).

The user experience is much the same as with Greek letters in math: you remember the binding between symbol and semantics if you know the code you're looking at. If you are learning the code, your first task is to learn that binding. Once you know the code, there is no quasi-semantic intermediary - a meaningful name - between the symbol and the concept.

I think our small sum of experience with this daring idea is that sometimes, it works better than other times. Basically, TLV naming is appropriate for code that is simple, but not trivial. (Trivial code, like "++add", is "ultralapidary" and gets OLV names - like "a" and "b".)

Ideally all of the Arvo kernel and Hoon self-compiler would meet the TLV standard of quality. All of it is written this way, though. In general, if you should be writing lapidary code, you know it, and if you don't know you shouldn't. (And should use more or less normal names as in any Lisp.)

Post reply on HN