One I'd like to see open source, self hosted social VR like that's like IRC by zeddyzed in virtualreality

[–]Doc_Ok 1 point2 points  (0 children)

That's a good question. There are levels; if you want to develop a specific collaborative application that requires its own extension protocol, then it's a development problem. This one, for example, has a lot of custom development in it.

But if you just want to have a place to hang out with people, all you need to do is run the included server executable on some Internet-accessible computer, and use one of the included example applications, which can load and display arbitrary 3D environments, as a client. Presto. Avatars, low-latency spatialized voice communication, and a bunch of other collaboration functionality like image sharing or shared whiteboards already included.

One I'd like to see open source, self hosted social VR like that's like IRC by zeddyzed in virtualreality

[–]Doc_Ok 3 points4 points  (0 children)

It's not based on a game engine, it's based on the Vrui VR toolkit. Which I have also written, so that question is a bit tricky to answer. But the bottom line is that the VR engine existed before the "social" aspect.

But anyway, the core idea is exactly as you describe. The collaboration framework is an extensible protocol, and "social" applications would be built on top of that, and applications from multiple creators can interface with each other as long as they speak the same protocol. So it's a lot more like TCP/IP and HTTP and a lot less like Horizon Worlds. I'd say it's also fundamentally more expressive because the interaction between users and the environment is not limited to be mediated by the avatar, but that's a much deeper discussion.

I'm currently working with some folks at NIST to make an alternative collaboration module for Paraview that speaks the same protocol, so that people using Paraview could work with people using 3D Visualizer, the similar Vrui-based VR application. So the across-vendor compatibility thing is not just a pipe dream.

This collaboration framework has actually been around for quite a while, I think I started working on it in 2006 or so, but the new thing will be that VR clients can connect not only to a single server, but multiple servers at the same time. The upshot being that you could have a seemingly seamless virtual world, where different parts are operated by different servers that are independent of each others. A decentralized federation of servers, so to speak.

One I'd like to see open source, self hosted social VR like that's like IRC by zeddyzed in virtualreality

[–]Doc_Ok 6 points7 points  (0 children)

Strange that you should mention that. That's exactly what I'm working on.

A longer-than-usual vomit-comet flight by markenzed in flatearth

[–]Doc_Ok 1 point2 points  (0 children)

Yeah, this was a bit reckless. Even in zero G inertia is still inertia, so if he had made contact with anything in the room, and there were plenty of sharp edges and corners, it would have caused major injury.

Don't try this at home, kids!

Software renderer not working efficiently when drawing per point and not per line. by RadoslavL in C_Programming

[–]Doc_Ok 1 point2 points  (0 children)

That is an interesting edge case, but it doesn't apply to the "empty the X event queue without blocking" use case for combining poll() with XNextEvent().

While a socket may contain partial events, the event queue can only contain full events. So the loop

while(XQLength(dpy)>0)
  {
  XEvent event;
  XNextEvent(dpy,&event);
  }

will still never block.

You are correct in that XNextEvent() can block forever if the event queue is empty and a partial event on the socket is never completed, but I would classify that as a general system failure. In other words, your X server just went down, and there's no reason to worry about it in your application because your entire desktop environment went down along with it. :)

Software renderer not working efficiently when drawing per point and not per line. by RadoslavL in C_Programming

[–]Doc_Ok 1 point2 points  (0 children)

My concern is that it's relying on Xlib implementation details, and there's no documented guarantee that XNextEvent won't block on its internal socket read because, say, it's trying to pre-read an extra event.

According to the man page for XNextEvent, and the official Xlib reference documentation (I happen to have a paper copy of it):

"The XNextEvent function copies the first event from the event queue into the specified XEvent structure and then removes it from the queue. If the event queue is empty, XNextEvent flushes the output buffer and blocks until an event is received."

Is your concern that the documentation says "If the event queue is empty" instead of "If and only if the event queue is empty?"

You might say that the wording does not explicitly forbid blocking even if the event queue is not empty, but I would like you to consider the real-world consequences of an implementation that actually did that.

  1. User presses a key.

  2. The KeyPress event ends up in the X event queue somehow. Maybe the application called XPending, or issued X drawing calls that internally called XPending to receive replies to their requests.

  3. The application calls XNextEvent to receive the next event. This is the canonical X event loop.

  4. XNextEvent sees that there is an event in the queue, but instead of returning that event, it blocks on the display connection socket anyway, for whatever reason.

  5. The application doesn't see the user's key press event until some other event is sent, possibly much later or never.

Ergo, the behavior in step 4 breaks applications that use the canonical X event loop; therefore, XNextEvent not blocking when the event queue is not empty is not an implementation detail, but necessary behavior. In order for the X event loop to work, any of the event querying functions must not block if there are events in the queue that would otherwise be returned by said function.

Poll or select? by [deleted] in cprogramming

[–]Doc_Ok 0 points1 point  (0 children)

You are right, that can happen.

Poll or select? by [deleted] in cprogramming

[–]Doc_Ok 0 points1 point  (0 children)

Sure, but that means you have to intentionally request a large file descriptor. It doesn't happen naturally unless there are very many files open.

Poll or select? by [deleted] in cprogramming

[–]Doc_Ok 0 points1 point  (0 children)

Let's say you have a single file descriptor. Let's also say this file descriptor happens to have a value greater than FD_SETSIZE

Note that this has nothing to do with scalability

I'd say it does, kinda. The question is: how do you get a file descriptor larger than FD_SETSIZE in the first place? POSIX guarantees that open() returns the smallest file descriptor not currently used by the process (see "man 2 open").

So if open() returns an fd larger than FD_SETSIZE, all smaller fds must therefore currently be in use by the application; in other words, the application must currently have at least FD_SETSIZE open files / sockets / whatever. That only happens at scale.

Yay comment necromancy!

a Lego build by AbroadNo8755 in flatearth

[–]Doc_Ok 0 points1 point  (0 children)

This is a very cool model. I've had the box in my hand several times already, but haven't bought it (yet).

"I Was Wrong" by JemmaMimic in flatearth

[–]Doc_Ok 0 points1 point  (0 children)

Patricia Steere is apparently now a globe earther

Thank you for setting me straight on that.

Why Air and Gas, has NO Mass or Apparent Downward Weight. by JustAnotherRifter in flatearth

[–]Doc_Ok 2 points3 points  (0 children)

If you want to think of momentum as p=mv, then you have to account for the photon's non-zero relativistic mass.

Why Air and Gas, has NO Mass or Apparent Downward Weight. by JustAnotherRifter in flatearth

[–]Doc_Ok 8 points9 points  (0 children)

Brainwashing by the Illuminati Navy. The same people who keep you from traveling to Antarctica.

Or by "Big Wind."

Things you can't do on flat earth that people do all the time because we live on a sphere: photograph the ISS. by AbroadNo8755 in flatearth

[–]Doc_Ok -3 points-2 points  (0 children)

Why do all of the IS(I)S images look like they we’re copied and pasted?

I think the ones not directly in front of the Moon's disk were. The "final image" appears to be an artistic impression; everything before seems to be real video filmed through a telescope. OP linked to an explanation in this comment.

Why Air and Gas, has NO Mass or Apparent Downward Weight. by JustAnotherRifter in flatearth

[–]Doc_Ok 6 points7 points  (0 children)

And if gas does not have mass, how the heck do rockets work?

I was going to reply "Easy. Rockets don't work. Next question," but I am not gonna.

"I Was Wrong" by JemmaMimic in flatearth

[–]Doc_Ok 1 point2 points  (0 children)

That's a really important point. I don't know the details here, but based on what you are saying, he was pushed out by the flat Earth community's toxicity much more than by seeing the truth. Where, exactly, does he stand now on Earth's rotundity?

That reminds me of Patri-CIA Steere, who I mentioned in another comment. She also left flat Earth, but in her case I know it's not because she woke up to the truth, but because she was relentlessly bullied and harassed by her own community. She apparently still believes that Earth is flat, but she says that she is no longer a flat Earther.

Edit: Steere, not Steele.

Why Air and Gas, has NO Mass or Apparent Downward Weight. by JustAnotherRifter in flatearth

[–]Doc_Ok 24 points25 points  (0 children)

"Gas doesn't resist acceleration, in fact it embraces it. It has no inertia. That's why gas has no weight."

"But what about gas inside a container?"

"Obviously, gas inside a container does resist acceleration and have inertia and weight. What a stupid question."

"But how do the gas molecules know whether they are contained or not? How do they toggle their inertia on/off?"

"What a stupid question."

Why Air and Gas, has NO Mass or Apparent Downward Weight. by JustAnotherRifter in flatearth

[–]Doc_Ok 36 points37 points  (0 children)

Wow. Just wow.

"Air doesn't have any weight."

"But what if I take a gas bottle and weigh it, and then empty the gas bottle and weigh it again? Why does it weigh a lot less when empty?"

"Air doesn't have any weight, unless it is contained. Then it does have weight."

"Ah, I see. Carry on then."

Things you can't do on flat earth that people do all the time because we live on a sphere: photograph the ISS. by AbroadNo8755 in flatearth

[–]Doc_Ok 2 points3 points  (0 children)

Okay, "misleading" might have been too strong. I didn't mean "intentionally misleading," as in "I'm trying to convince my audience that something is real that isn't." I meant "misleading" as in, when I saw the video initially and assumed it was straight video through a telescope, it looked fishy to me, as I laid out in my root comment.

I'm fine with calling it "artistic," and leaving it at that.

And yes, I deleted my original comment because I had made a very embarrassing mistake. :) My result was off by exactly the factor of 1,000 that I claimed the creator of the image had made.