Live data from Hacker News

Urbit: a personal cloud computer

doc.urbit.org

231–240 of 281 posts

Re: Urbit: a personal cloud computer

#231
Is it just me, or is anyone else reminded of the story of Project Xanadu? (A great read[1], if you have an hour to spare.)

Especially this part: > Shapiro also discovered that the group had been working together so long it had developed a kind of private slang. It took months to comprehend what the programmers were talking about. Most of them were book lovers and trivia mongers who enjoyed developing a metaphor based on obscure sources and extending it via even more unlikely combinations. For instance, the object in the Xanadu system that resembled a file was called a bert, after Bertrand Russell. With files called bert, there had to be something called an ernie, and so in the Xanadu publishing system, an ernie was the unit of information for which users would be billed. To understand the details of Xanadu, Shapiro had to learn not only the names for things, but also the history of how those names had come to be.

[1] http://archive.wired.com/wired/archive/3.06/xanadu_pr.html

Re: Urbit: a personal cloud computer

#232
post #207

Earlier quoted context omitted.

I think the classic analogy is "grep." But they are commented, at least: ++ 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 non…

This Hoon code is very pretty but the English content of the names is extremely low. I mean.. reading a programming language I don't know, okay.. I don't expect to be able to understand much. But syntax and semantics aside the names are a language of their own with no attempt at referencing anything that might even be a little bit similar. It's as though every time you needed to name a concept you came up with a uniq…

Frankly, it always surprises me that people are willing to randomly run other peoples' C code! It's really quite plausible that I'm just out to steal your Bitcoin wallet.

The above are all data structures - not even functions. So we say "a pimp" or "a marl" or whatever. For precision, we might say "slam a gate on a pimp," but everyone will understand you when you say "call a function on a pimp."

Then, we refer to the comments (written in English) to see what a pimp, etc, is. Documentation is admittedly a problem, but it's not any more or less a problem than in any other language, I feel. Obviously, we could have more of it!

Re: Urbit: a personal cloud computer

#233
post #103

Earlier quoted context omitted.

To be fair, that's also pretty close to exit code semantics on most POSIX systems, where 0 is success and non-zero is failure...

But on POSIX systems, there's a reason for that. There's only one success (Since "success" should do the same thing every time), but many types of errors which can be indicated by the return value. You could argue that 1 should be success, and >1 should be failure, but that's a minor quibble. Conversely, here it's just because "it's different". I feel that this is a bit if a shame - some of the other parts of the pro…

Yeah, it's probably not one of our better decisions.

Re: Urbit: a personal cloud computer

#234

Is it just me, or is anyone else reminded of the story of Project Xanadu? (A great read[1], if you have an hour to spare.) Especially this part: > Shapiro also discovered that the group had been working together so long it had developed a kind of private slang. It took months to comprehend what the programmers were talking about. Most of them were book lovers and trivia mongers who enjoyed developing a metaphor based…

I resemble this remark. We're making progress more than twice as fast than Xanadu!

Re: Urbit: a personal cloud computer

#235
post #110
post #84

Earlier quoted context omitted.

"Anyway, perhaps we are all missing the underlying point - an overly complicated solution (to an otherwise straightforward problem) has been the received wisdom for decades, and a re-think from fundamentals is almost definitely worth the effort." I don't know that the solution is overly complicated or that the problem is straightforward. Think of every human being as their own little Y Combinator startup -- everybody…

Sure, I entirely agree that there's a large spectrum of user types (or people) out there. You used the phrase 'most people' three times there to describe a quite likely common user type for off-the-shelf consumables. I am quietly confident the guys working on this are not targeting 'most people'. Or if they are, they are quite candid about it not being ready for them yet.

It's not ready for them yet. :-)

Re: Urbit: a personal cloud computer

#236
post #55
post #28

Earlier quoted context omitted.

Here's one possible intuition: There is one ground truth, origin, fixed point like the North Star: zero. There are an infinite number of possible falsehoods: all nonzero numbers. But Urbit chooses 1 as the canonical false.

And this is close to the reason why you often see zero used a "success" in languages like C: There are many possible error values. So it's not very original at all.

That's correct. :-)

Re: Urbit: a personal cloud computer

#237
post #102

Earlier quoted context omitted.

Can you, for example, spell out what you mean by "you really want your data model to be acyclic and not require GC"? What is cyclic about the "data model" in e.g. Go or Lua?

I can field that one. If a has A reference to B and B has a reference to C and C has a reference to A, then we have q cycle. Cycles play merry hell with garbage collectors and reference count destructors. Languages that force references to be a strict tree or DAG get cheap destruction in return - see C++ without pointers for example - I pop a local object off the stack and it's gone, along with all its children - no…

Right. The way I'd put it is: in system software, the iron law is that you don't make the programmer pay for anything she doesn't need to buy.

What you pay (GC) for the privilege of having pointer cycles in your data is grossly disproportionate to the benefit. Yes, there are a lot of things that are O(k) with pointer cycles and O(log n) without them. If what you buy from this optimization is worth the cost of GC, you are doing a lot of these things... a lot.

Re: Urbit: a personal cloud computer

#238
post #212

Earlier quoted context omitted.

and how long till Urbit can render marl marx and mane? aka how long till I can make a UX using web technologies that runs on Urbit?

All of that stuff works now. If you're asking how long until it's supported, I'm not an employee of Tlon, so don't ask me. I can tell you that most of this stuff is still very slow, even if it works. Check out the demo app, you can click a button and increment a number on the page, and it generates an event that gets reflected out (through some like AJAX) through the server, back out to as many subscribers as are cur…

Wait, woah. Really? How? Where? Any links that will point me in a direction towards that demo app? Or even what it is named? How do I get started?

Re: Urbit: a personal cloud computer

#239
post #200

Earlier quoted context omitted.

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)…

Please define "TLV", "OLV", and "lapidary".

Three/One Letter Variables.

Lapidary:

(of language) engraved on or suitable for engraving on stone and therefore elegant and concise.

Re: Urbit: a personal cloud computer

#240
post #212

Earlier quoted context omitted.

All of that stuff works now. If you're asking how long until it's supported, I'm not an employee of Tlon, so don't ask me. I can tell you that most of this stuff is still very slow, even if it works. Check out the demo app, you can click a button and increment a number on the page, and it generates an event that gets reflected out (through some like AJAX) through the server, back out to as many subscribers as are cur…

Wait, woah. Really? How? Where? Any links that will point me in a direction towards that demo app? Or even what it is named? How do I get started?

Yeah, man. Fire up a pier and visit:

http://localhost:8080/geg/demo

You'll find the code in your pier/ship/main/app/demo/core.hook

To reset the counter (wipe the app state), at your command-line, do:

   :wipe %demo
I just tested it, I can see that it still works, but like I said none of this is guaranteed to go on working. It's all very alpha.

This is called a %gall app. It's always running because the %gall vane runs the main/app/ apps in the background without intervention, like radio/core.hook that runs the server for the :chat app. See you in :chat maybe, if you have questions about how this works you will certainly be welcome.

Post reply on HN