Hacker Newsnew | past | comments | ask | show | jobs | submit | zeen's commentslogin

Bad example. XML is the wire format in XMPP RFCs, not a file format.


Cmd + Click on OS X, as it should be.


Do it right how exactly? Oculus doesn't manufacture the hardware in question. Oculus is very much at the mercy of the smartphone display market. The only thing Oculus/Carmack can do is convince Samsung, and unless the change can impact the smartphone display market, Samsung is highly unlikely to be interested.

Unless you are suggesting Oculus get into the display manufacturing business? That's certainly interesting, but would probably add several years to their release timeline.


Oculus is very much at the mercy of the smartphone display market.

At some point, normally before somebody spends $2 billion dollars, that stops being a valid excuse in the hardware business.


About 1 billion smartphones shipped in 2013. $2 billion stops excuses for a lot of things, but this isn't one of them. Oculus will absolutely have to make due with the screens being made for phones.


The reason you don't see realistic models very often is because objects we use as for reference (planets) are too tiny compared to the space between them. Earth would be nothing more than a speck of dust in a football sized model.

That said, here's a model with proper proportions of distance: http://www.solarsystemscope.com/ - Flash required, click anywhere, click on the gear icon to the left to select realistic size and model. Zoom slider is to the right. Note, the sizes and colors are wrong, most planets would be pretty much invisible in a realistic model.

Here's a neat non-interactive one from NASA: http://space.jpl.nasa.gov/


I dont understand the flash one.

The nasa one gives me this: http://i.imgur.com/E6JW3Ks.jpg

Too bad they show all those stars in the background. So its a bit hard to say what is what. But it looks like the sun and the planets are quite visible. But are the proportions really correct? It looks like the sun is not much bigger then the plantes.


Well, there are two issues here.

(1) Correct proportions of the distances between objects (namely the planets, planetoids, and the Sun), and (2) the correct proportions of the objects themselves.

The links (A) http://www.solarsystemscope.com/ and (B) http://space.jpl.nasa.gov/ show correct proportionality in DISTANCES BETWEEN OBJECTS but NOT the objects themselves.

For correct proportionality for both the distances and the objects themselves, see http://joshworth.com/dev/pixelspace/pixelspace_solarsystem.h...

The problem with http://codepen.io/juliangarnier/pen/idhuG is that both the distances between objects and the objects themselves are not proportionally correct.


I find that flash one fantastic, with the stars. I'll be returning to it often.


I'm one of the authors of the Prosody XMPP server, and a member of the XMPP software foundation. Prosody operators have been reporting this for more than a week now.

Google users have apparently been flooded with subscription requests from spammers, and the flooding suddenly became massive. The problem is, there are a large number of jabber servers out there which have open account registration without captchas. Most jabber server software doesn't come with a captcha module included by default, and of course, most admins don't bother changing defaults, even while running a public server with open registration.

Unlike some other comments here, I don't think Google has any malicious intent in this. This seems like a stop-gap measure, while they figure out and implement a proper solution.

As to the proper solution, the XMPP community is largely moving towards having captchas, or other forms of verification, and there are a number of proposed standards.

The thing to understand here is that the XMPP community has historically not had a spam problem. Due to the nature of the protocol, spoofing wasn't possible from the start, and there were no large lists of JIDs for spammers to abuse, so things worked out fine for a decade despite a lack of captchas. The good news is that the XSF was already preemptively working on the spam problem, and the speed with which XMPP specs (XEPs) get defined, implemented and deployed in servers and clients is far faster than any other large scale open protocol that I'm aware of.


Nice! To be fair to the Flash version, it appears to be using the 2D drawing API (equivalent to HTML5 canvas). If the Flash version used Stage3D, performance would probably be equivalent to WebGL for this demo, since most of the work would be offloaded to the GPU.


It is indeed a shortcoming of OpenFire; one that won't be fixed [1].

As far as the XMPP protocol is concerned, the concept of sub-domains doesn't matter. It's useful for human users when configuring servers though.

Prosody for example allows running a multi-user chat service on example.com. And there's an undocumented feature which let's you have user@example.com be a user, and room@example.com be a chatroom.

[1] http://issues.igniterealtime.org/browse/OF-162


Fully detecting a scene's lighting is a complex problem. This paper from last year was quite interesting: "Rendering Synthetic Objects into Legacy Photographs" - http://kevinkarsch.com/publications/sa11.html

This combined with existing techniques of constructing 3D geometry out of videos could work really well if say you wish to construct a game level out of a real scene.

Raytracing complex scenes on a hand-held device at interactive frame rates is still quite a bit off. But techniques where a lot of the calculations can be done offline are possible to use today (radiosity, etc).


Well, since we are nitpicking nitpicks, allow me to nitpick your nitpick of a nitpick: Lua closures are also composite data structures. You can get/set their upvalues via the debug API. Behold:

  function create()
    local a,b,c,d,e,f,g,h,i,j;
    return function() print(a,b,c,d,e,f,g,h,i,j); end
  end
  function array_get(f, index)
    local k,v = debug.getupvalue(f, index);
    return v;
  end
  function array_set(f, index, value)
    debug.setupvalue(f, index, value);
  end
  function map_get(f, key)
    for i=1,math.huge do
      local k,v = debug.getupvalue(f, i);
      if k == key then return v; end
      if k == nil then return nil; end
    end
  end
  function map_set(f, key, value)
    for i=1,math.huge do
      local k,v = debug.getupvalue(f, i);
      if k == nil then return; end
      if k == key then
        debug.setupvalue(f, i, value);
        return;
      end
    end
  end
  
  function test()
    local f = create();
    array_set(f, 1, "one")
    assert(array_get(f, 1) == "one");
    map_set(f, "b", "something");
    assert(map_get(f, "b") == "something");
    print("Success!")
  end
  test();
If table creation was disallowed, you could use functions in place of tables. And you could repurpose an existing table as the function type's metatable, allowing syntax like func.x=func[y]

Oh, and coroutines probably also fall under composite data structures technically...


Very well played! If I were the nitpick-y type ;) I'd wonder whether use of the debug library is kosher (esp. in production code), but you are definitely correct. Though, actually, this again correlates very closely with C/Scheme -- You can use an offset from a stack frame pointer to access stack variables in a function scope in C; and upvalues are just closed-over variables a la Scheme closures.

Actually, that's another point in Lua's favor. The mechanism Lua uses for managing closed-over variables is WAY more elegant than, for example, Ruby's mechanism...


You got it. Quoting from the 5.2 manual:

  Because of the lexical scoping rules, local variables can
  be freely accessed by functions defined inside their scope.
  A local variable used by an inner function is called an
  upvalue, or external local variable, inside the inner
  function.
i.e., the external local variables the closure is closed on. And for C functions made available to Lua scripts:

  When a C function is created, it is possible to associate
  some values with it, thus creating a C closure (see
  lua_pushcclosure); these values are called upvalues and are
  accessible to the function whenever it is called.
- http://www.lua.org/manual/5.2/manual.html


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

Search: