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…
I haven't read all of Unqualified Reservations, but what I have read so far (Dawkins, Open Letter, Gentle Introduction) has not been difficult to read at all. Perhaps long and winding, but not opaque. In fact, I find Moldbug to be much more accessible than his sources of inspiration (which are standard fare if you even want to even begin with political theory).
Urbit: a personal cloud computer
201–210 of 281 posts
Re: Urbit: a personal cloud computer
#202Earlier 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…
Wow, now I'm curious about the language. Looks like made-up gibberish at first sight: ++ lax :: lax:as:go |_ [her=ship dur=dore] :: per client ++ cluy :: cluy:lax:as:go ^- [p=life q=gens r=acru] :: client crypto ?~ lew.wod.dur !! ?. =(fak.ton r.i.lew.wod.dur) ~|([%client-wrong-fake her] !!) :+ p.p.q.i.lew.wod.dur q.q.i.lew.wod.dur (haul r.q.i.lew.wod.dur) ::
:function lax {
:object :tuple{her: ship dur: dore} {
:function cluy {
:produce :tuple{p: life q: gens r: acru}
:ifno lew.wod.dur :error
:unless (equals fak.ton r.i.lew.wod.dur) {
:record :tuple{%client-wrong-fake her}
:error
} :then {
:tuple {
p.p.q.i.lew.wod.dur
q.q.i.lew.wod.dur
(haul r.q.i.lew.wod.dur)
}
}
}
}
}
Is this better? Arguably, it's easier to learn. But I'm not sure I would regard it as better.Also, for your convenience we've assigned CVC nonsense names to all the ASCII characters. Pasting from the source:
++ ace (just ' ')
++ bar (just '|')
++ bas (just '\\')
++ buc (just '$')
++ cab (just '_')
++ cen (just '%')
++ col (just ':')
++ com (just ',')
++ doq (just '"')
++ dot (just '.')
++ fas (just '/')
++ gal (just '')
++ hax (just '#')
++ kel (just '{')
++ ker (just '}')
++ ket (just '^')
++ lus (just '+')
++ hep (just '-')
++ pel (just '(')
++ pam (just '&')
++ per (just ')')
++ pat (just '@')
++ sel (just '[')
++ sem (just ';')
++ ser (just ']')
++ sig (just '~')
++ soq (just '\'')
++ tar (just '*')
++ tec (just '`')
++ tis (just '=')
++ wut (just '?')
++ zap (just '!')
One of the problems with using these handy little glyphs in syntax (and an even worse problem with using Unicode glyphs in programming, btw) is that "semicolon" is not convenient to say. The length of the vocalization matters a lot to how you think about a symbol, even if you don't often say it.Re: Urbit: a personal cloud computer
#203Earlier 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…
What is pimp? What is pest seam marl?
What do any of these names mean? What does any of this do? Forget not knowing the syntax, the names look like gibberish.
Re: Urbit: a personal cloud computer
#204It's probably the second time that I come across Urbit and found it attention worthy, but... how hard would it be to explain at least some of the concepts in plain English and with some nice intuitive drawings/schemas on the side, really? I mean, this http://doc.urbit.org/doc/hoon/tut/1/ is supposed to be a "tutorial" but it's definitely not what anyone else would call a "tutorial". It's more like a "philosophical in…
Our documentation has advanced since this was posted. I'd be interested to talk more out of band, but can't find your email. If you're up for it I'm galen at tlon.io.
Re: Urbit: a personal cloud computer
#205Earlier 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…
This goes even deeper. Let's just go on and assume that Urbit's spec-bearing T-shirt includes everything you need for IO. Now consider this promise from Mr Yarvin, found in the older Urbit thread someone linked to: "And actually, if you don't like Hoon [Urbit's strange, obfuscated high level programming language] you can build your own language on this platform. So long as it compiles to Nock [purportedly documented…
There is certainly no free lunch in this system. If your CPU is radiating heat, it is spending a bunch of time in Nock formulas which could be better optimized. For instance, maybe you rolled your own decrement, so the interpreter can't match it with the jet it uses for stock Hoon decrement.
That's okay, because the jet matching mechanism is not in any way specialized to the code. All you have to do is (a) get your compiler for the new language to emit a proper jet hint for your things-you-want-to-be-fast, (b) write correctly matched C implementations, and (c) add them to a static array.
Or to put it more briefly: a well-designed Nock implementation is not in any way coupled to the Hoon or Arvo layers.
One of the not-quite-finished things about our interpreter right now (other than that it interprets the tree directly and so gets about 1.5 Nock mips, which is pathetic) is that jets have to be compiled into the kernel and aren't opened by dlopen. Ideally we'd even load something like a PNACL/LLVM object, and we'd get it the same way we get the Hoon source, ie, via Urbit itself.
Re: Urbit: a personal cloud computer
#206Earlier quoted context omitted.
I never would have guessed that Urbit has funding. That sounds like a very interesting job.
Peter Thiel is known for his financial support of both neoreactionarism and various types of out-there futurism; I wouldn't be surprised if he's involved, and I'm sure he's not the only jillionaire with similar interests.
I have no idea whether Urbit is as significant an idea as Mr. Moldbug suggests, but it's too interesting not to try out at least.
Re: Urbit: a personal cloud computer
#207Earlier 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…
https://github.com/urbit/urbit/blob/master/urb/zod/arvo/eyre... What is pimp? What is pest seam marl? What do any of these names mean? What does any of this do? Forget not knowing the syntax, the names look like gibberish.
++ pimp :: traced request
$: ful=? :: | === HEAD
fur=(unit mark) :: type goal
hen=duct :: event trace
som=seam :: logical request
pez=pest :: request state
sip=marl :: injected scripts
== ::
I think this is not at all an unusual data structure for one to find in an HTTP server, no?Now, this style (four-letter lapidary arm names, usually not nonsense strings but nonsense words) works in some places but not others. Frankly, %eyre is not exactly a triumph of the lapidary style...
Re: Urbit: a personal cloud computer
#208Re: Urbit: a personal cloud computer
#209Earlier quoted context omitted.
Peter Thiel is known for his financial support of both neoreactionarism and various types of out-there futurism; I wouldn't be surprised if he's involved, and I'm sure he's not the only jillionaire with similar interests.
> Peter Thiel is known for his financial support of... neoreactionarism Do you have examples?
Re: Urbit: a personal cloud computer
#210Earlier quoted context omitted.
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?
try=> ->- (sein ->-
... ~zod is your parent ship. Without him, you simply have no forwarding address.If your batz wizardry is sufficient and ~zod is not there (both of these are things that we are not counting on being true when you run Urbit for the first time) you will still get the same result in your terminal, you can reach out and contact other carriers and their friends, even without ~zod. They just can't find you. And you need to find another way to bootstrap your clay (filesystem) if you care about having local clay.
Think about the difficulty of coordinating multiple stakeholders, compared to the ease of explaining the "benevolent dictator" model that most of computing is really based on today. If the only thing that ~zod needs to do is point submarines at one another and facilitate the existence of other signing ships under his domain, that's very easy. Doing those things without ~zod's cooperation will require some further thought and more explanation.
I am a carrier owner (~del) and I count on ~zod to make it easy for new subs to find me. It's very convenient this way. But, anyone who knows how to type:
:~del/main=/bin/hi ~dalnel
... can also reach out to my carrier and run "hi" (become mmy neighbor) to find ~dalnel with my help, and exchange keys with him (~dalnel is the cruiser, like ~zod's ~doznec).~zod never needs to get involved. There is, however, no magic under the hood. My carrier ~del works exactly the same way, except he is not preferred in the same way by the submarine client implementation.