<?xml version="1.0" encoding="iso-8859-1" ?>
<rss version="2.0">
  <channel>
    <title>Interreality Discussion</title>
    <link>http://interreality.org/phorum/index.php</link>
    <description><![CDATA[]]></description>
    <language>EN</language>
    <pubDate>Tue, 13 May 2008 16:30:00 -0400</pubDate>
    <lastBuildDate>Tue, 13 May 2008 16:30:00 -0400</lastBuildDate>
    <category>Interreality Discussion</category>
    <generator>Phorum 5.1.25</generator>
    <ttl>60</ttl>
    <item>
      <title>[vos-d] Re: s5 properties proposal</title>
      <link>http://interreality.org/phorum/read.php?2,249,253#msg-253</link>
      <author>reed</author>
      <description><![CDATA[We talked a bit on IRC but wanted to respond here too.<br />
<br />
I think it can be summarized briefly like this, I think:<br />
<br />
In S4, Vobjects had an ordered list of named child links to other <br />
Vobjects, one type of which was a Property. In the proposal, Vobjects <br />
have an unordered set of named properties, one type of which is a link <br />
to another Vobject.  (And properties can be lists or structured records, <br />
which could include Vobject links.)<br />
<br />
I like the benefits of embedded properties, as long as we can still <br />
retain or mimic some of the important aspects of Vobjects as well, in <br />
order not to limit the usefulness of properties, and also to facilitate <br />
transmogrifying a property into a new seperate vobject (using for <br />
example the 'overrides' part of your proposal).<br />
<br />
I think having ordered vobjects is useful. But could live with having <br />
ordered property data instead I guess.<br />
<br />
Properties should still have some kind of type/tagging associated with <br />
them (optionally) that could, for example, let programs use extensible <br />
API to access them (like Vobjects).  For example, could you do the <br />
following using the new embedded properties:<br />
<br />
A property of a certain type has subproperties beneath it that contain <br />
the original value translated into other languages or locales. (or are <br />
generally speaking alternative versions)  You can ignore the <br />
translations if you want, but if the property is tagged with <br />
&quot;has-translations&quot; or whatever, and the user has a preferred language, <br />
then use the subproperty for that language rather than the default.<br />
<br />
You could think of various things like this where you want to have the <br />
ability to add facets or special meaning onto a property in the same way <br />
as you can a Vobject using a Component (metaobject).<br />
<br />
Or, of course you might just want to have a tag on a property that might <br />
have some meaning but which does not imply that any subproperties exist etc.<br />
<br />
...<br />
<br />
Can you walk through how overrides work or how one would replace an <br />
embedded property with an override that points to a seperate vobject? <br />
Would the new seperated property need to be a subproperty of a vobject? <br />
Or could we have a &quot;Property&quot; type Vobject (like the old kind), with the <br />
same or almost the same API as embedded properties? (And then you can <br />
link to it directly as a child link.)<br />
<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,249,253#msg-253</guid>
      <pubDate>Tue, 13 May 2008 16:30:00 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] [[Spam?]] Tired of overpaying for meds at your local pharm store? Here is the one stop solution for yo</title>
      <link>http://interreality.org/phorum/read.php?2,252,252#msg-252</link>
      <author></author>
      <description><![CDATA[Tired of overpaying for meds at your local pharm store? Here is the one stop solution for you:  <br />
 <br />
Housing the world's largest selection of items in one online store, you can purchase meds from the comfort of your home. <br />
Hundreds of presc. meds available at just a click for all your health needs - no troublesome visits to the doc, and no exorbitant prices to pay. <br />
<br />
Recommended by healthcare professionals and thousands of satisfied customers worldwide - visit us today.<br />
<br />
http://shopstamps.com/img/nio/<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,252,252#msg-252</guid>
      <pubDate>Tue, 13 May 2008 15:33:33 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] traits</title>
      <link>http://interreality.org/phorum/read.php?2,251,251#msg-251</link>
      <author>lalo</author>
      <description><![CDATA[http://www.iam.unibe.ch/~scg/Research/Traits/<br />
<br />
Interesting stuff, and reminds me of s5.  There may be some wisdom there <br />
that we can reuse.<br />
<br />
best,<br />
                                               Lalo Martins<br />
-- <br />
      So many of our dreams at first seem impossible,<br />
       then they seem improbable, and then, when we<br />
       summon the will, they soon become inevitable.<br />
                           -----<br />
                  http://lalomartins.info/<br />
GNU: never give up freedom              http://www.gnu.org/<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,251,251#msg-251</guid>
      <pubDate>Sun, 11 May 2008 13:20:31 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] &quot;Speed Racer&quot; movie - interviews with the VFX directors</title>
      <link>http://interreality.org/phorum/read.php?2,250,250#msg-250</link>
      <author>reed</author>
      <description><![CDATA[http://www.vrmag.org/speedracer/<br />
<br />
When they say &quot;VR&quot;, at least in the John Gaeta interview, I think they <br />
are really referring to panoramic images projected on the inside of a <br />
sphere, and you view it from the center and rotate to view different <br />
parts of the image.<br />
<br />
The interview starts down a ways on the page.  More images are further <br />
along towards the bottom showing how they constructed some scenes.<br />
<br />
Another interview, in video, includes some examples:<br />
<br />
http://tv.boingboing.net/2008/05/05/speed-racer-is-popti.html<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,250,250#msg-250</guid>
      <pubDate>Tue, 06 May 2008 11:19:33 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] s5 properties proposal</title>
      <link>http://interreality.org/phorum/read.php?2,249,249#msg-249</link>
      <author>Peter Amstutz</author>
      <description><![CDATA[Why the current s5 design for &quot;embedde children&quot; doesn't work...<br />
<br />
Background.<br />
<br />
A key aspect of the design of VOS s3 and s4 is the parent/child list.  <br />
This is an associative array of name/value pairs, where the value is a <br />
link to another vobject.  This list of outgoing links plays a key role <br />
in VOS as the primary mechanism of linking vobjects to &quot;properties&quot; <br />
(other vobjects storing values that describe the first vobject) as well <br />
as the overall organization of vobjects into a (mostly) hierarchical <br />
namespace.<br />
<br />
Advantages of this scheme (that have gotten us pretty far):<br />
 - A naive implementation is very easy, only need the Vobject class.<br />
 - Serialization/persistance is pretty easy.<br />
 - Introspection of the vobject structure is straightforward.<br />
 - Accomodates lists (order-sensitive) and maps (key/value pairs).<br />
 - Vobjects can share properties and link to remote properties.<br />
<br />
Disadvantages of this scheme (that we learned the hard way):<br />
 - An efficient implementation is very difficult.  Since properties are <br />
standalone vobjects, there is a great deal of overhead associated with <br />
it: the property vobject has its own child list, access control list, <br />
listener list, etc.<br />
 - Because of the overhead, scaling up to large numbers of vobjects <br />
(over 10,000) turned out to be a problem.<br />
 - The child list is always order sensitive, even when not required or <br />
desiriable.<br />
 - Poorly suited to object/relational mapping.<br />
 - Associative array semantics permits duplicate, redundant or <br />
conflicting entries; whether that causes problems depends on how the <br />
child list is interpreted.<br />
 - Difficult to deal with the case where one property is dependent or <br />
constrained by another property without exposing a race condition or <br />
requiring additional concurrency semantics.<br />
<br />
<br />
Original proposed solution.<br />
<br />
Originally, the solution was to keep the basic associative array child <br />
list, but introduce &quot;embedded children&quot;: child properties which are <br />
actually stored and managed by the vobject that owns them.  These would <br />
appear in the child list as normal vobjects, could be individually <br />
linked to and/or replaced by links to remote vobjects.  When doing <br />
serialization or persistance, embedded children would be treated <br />
specially and stored efficiently.<br />
<br />
Advantages:<br />
 - Retains the advantages of the s3/s4 child list.<br />
 - Much less (storage) overhead than s3/s4 approach.<br />
<br />
Disadvantages:<br />
 - Implementation is hairy.  Parent vobject must juggle a bunch of <br />
pseudo-vobjects.<br />
 - Embedded children still have some per-vobject overhead in the form of <br />
special entries in the child list.<br />
 - Leaky abstraction.  Embedded children appear to be vobjects, but most <br />
vobject operations (such as having a child list itself) won't be <br />
available.<br />
 - In order to save efficiently, serialization/persistance code must be <br />
able to distinguish between embedded and non-embedded children, which <br />
defeats the purpose of presenting a unified interface.<br />
<br />
<br />
See the thread &quot;s5 properties again&quot; for discussion for a new design <br />
that avoids these disadvantages.<br />
<br />
-- <br />
[ Peter Amstutz ][ tetron@interreality.org ][peter.amstutz@tseboston.com]<br />
[Lead Programmer][Interreality Project][Virtual Reality for the Internet]<br />
[ VOS: Next Generation Internet Communication][ http://interreality.org ]<br />
[ http://interreality.org/~tetron ][ pgpkey:  pgpkeys.mit.edu  18C21DF7 ]<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,249,249#msg-249</guid>
      <pubDate>Sat, 03 May 2008 12:25:15 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] Re: s5 properties again</title>
      <link>http://interreality.org/phorum/read.php?2,246,248#msg-248</link>
      <author>Peter Amstutz</author>
      <description><![CDATA[On Sat, May 03, 2008 at 09:00:30AM +0000, Lalo Martins wrote:<br />
&gt; <br />
&gt; For me this kills it.  How much do you estimate it would set you back?  <br />
&gt; And is what's wrong with the current design serious enough to justify <br />
&gt; this time?  A good yardstick for that is: is the new design sufficiently <br />
&gt; better that, if you stop now to implement it, you'll still have gone as <br />
&gt; far by end of this year as you would if you don't?<br />
<br />
I know, that's why I wanted to get input from everyone first.<br />
<br />
The original reason I even got on this track was that in the process of <br />
designing serialization and marshaling for getters and setters, I <br />
realized the old tentative design created a number of problems I <br />
couldn't resolve, which caused development to hit a brick wall.  I <br />
actually have a long email I wrote last week outlining the problems in <br />
great detail, I didn't send it then but I will do so now.<br />
<br />
&gt; *IF* you really think it's worth it, then I'm willing to discuss the <br />
&gt; details; but I think before we even get to that, it would be good to <br />
&gt; discuss whether a project of this magnitude is worth considering at all.<br />
<br />
Well, at the moment I'm in a bind one way or the other, since I can't <br />
proceed without resolving this impass.<br />
<br />
-- <br />
[ Peter Amstutz ][ tetron@interreality.org ][peter.amstutz@tseboston.com]<br />
[Lead Programmer][Interreality Project][Virtual Reality for the Internet]<br />
[ VOS: Next Generation Internet Communication][ http://interreality.org ]<br />
[ http://interreality.org/~tetron ][ pgpkey:  pgpkeys.mit.edu  18C21DF7 ]<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,246,248#msg-248</guid>
      <pubDate>Sat, 03 May 2008 12:19:48 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] Re: s5 properties again</title>
      <link>http://interreality.org/phorum/read.php?2,246,247#msg-247</link>
      <author>lalo</author>
      <description><![CDATA[Also spracht Peter Amstutz (Thu, 01 May 2008 22:31:03 -0400):<br />
&gt;  - It's going back to the drawing board (again) (not completely, but it<br />
&gt; does mean some work redesigning the VOS APIs, the XOD format, changing<br />
&gt; the code generator, etc)<br />
<br />
For me this kills it.  How much do you estimate it would set you back?  <br />
And is what's wrong with the current design serious enough to justify <br />
this time?  A good yardstick for that is: is the new design sufficiently <br />
better that, if you stop now to implement it, you'll still have gone as <br />
far by end of this year as you would if you don't?<br />
<br />
*IF* you really think it's worth it, then I'm willing to discuss the <br />
details; but I think before we even get to that, it would be good to <br />
discuss whether a project of this magnitude is worth considering at all.<br />
<br />
best,<br />
                                               Lalo Martins<br />
-- <br />
      So many of our dreams at first seem impossible,<br />
       then they seem improbable, and then, when we<br />
       summon the will, they soon become inevitable.<br />
                           -----<br />
                  http://lalomartins.info/<br />
GNU: never give up freedom              http://www.gnu.org/<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,246,247#msg-247</guid>
      <pubDate>Sat, 03 May 2008 05:01:03 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] s5 properties again</title>
      <link>http://interreality.org/phorum/read.php?2,246,246#msg-246</link>
      <author>Peter Amstutz</author>
      <description><![CDATA[Some ideas for a new design for properties.<br />
<br />
Replace the vobject &quot;child list&quot; with a &quot;property map&quot;.  A property is a <br />
slot that holds some value, which can be a basic type (int, string), a <br />
compound type (struct, array or map) or a reference to another vobject.  <br />
Reflection permits iterating over all entries in the property map.<br />
<br />
Unlike links in the child list, the order of properties is not <br />
significant, and two properties of the same name are not allowed.  Where <br />
order is important, data can be stored in an array property.<br />
<br />
Paths are still available.  For example:<br />
<br />
/vos/Namespaces/core/Types/String<br />
<br />
Where<br />
&quot;vos&quot; is a vobject<br />
&quot;Namespaces&quot; is a map of names to vobject references<br />
&quot;core&quot; is a reference to a particular vobject<br />
&quot;Classes&quot; is another map, part of &quot;core&quot;<br />
&quot;String&quot; is a reference to another vobject<br />
<br />
Another example:<br />
<br />
/scene/objects/_2/position/x<br />
<br />
Where<br />
&quot;scene&quot; is a vobject<br />
&quot;objects&quot; is a list of vobject references<br />
&quot;_2&quot; is the reference at index 2 in the list<br />
&quot;position&quot; is an xyz vector struct<br />
&quot;x&quot; is the x member of the struct<br />
<br />
At any point you can get a &quot;directory&quot; of properties underneath some <br />
path, along with a reference to the VOS type.<br />
<br />
/scene/objects/_2/position/*<br />
 would yield<br />
&quot;x&quot; (/vos/Namespaces/core/Types/Float)<br />
&quot;y&quot; (/vos/Namespaces/core/Types/Float)<br />
&quot;z&quot; (/vos/Namespaces/core/Types/Float)<br />
<br />
/scene/objects/_2/*<br />
 would yield <br />
&quot;position&quot;    (/vos/Namespaces/a3dl/Vector3)<br />
&quot;orientation&quot; (/vos/Namespaces/a3dl/Vector4)<br />
&quot;color&quot;       (/vos/Namespaces/a3dl/Color)<br />
<br />
And so forth.<br />
<br />
Properties would be referenced using a vobject id + path.  Properties <br />
would be manipulated (get/set methods) by sending messages to the parent <br />
vobject and including the path to the property of interest.<br />
<br />
Vobjects subscribe to property changes by providing the path referring <br />
to the property of interest.<br />
<br />
Reflection would hold additional metadata describing properties, such as <br />
which properties should be automatically stored for serialization and <br />
persistance.<br />
<br />
Vobject references would support both &quot;hard&quot; links (link to a specific <br />
vobject id) and &quot;soft&quot; links (where there is a relative path that must <br />
be resolved to determine the actual vobject).<br />
<br />
In addition to &quot;embedded&quot; properties (those which are part of the state, <br />
which are always there) the user would be able to attach their own <br />
&quot;override&quot; properties.<br />
<br />
An override property would be either an entirely new property, or <br />
replace an existing embedded property.  Matching an override would be <br />
path based, for example:<br />
<br />
addOverride(&quot;/object/position/x&quot;, 22)<br />
<br />
Would change the &quot;x&quot; component of the position to 22.  Any read or write <br />
to &quot;x&quot; or &quot;position&quot; would use the override, rather than the underlying <br />
value.  Removing the override would restore the old value.<br />
<br />
The override could provide a slot to store the value, it could tie the <br />
get/set operations to some other property of the same type (referenced <br />
as a vobject + path), or it could tie the get/set operations to some <br />
other methods a vobject.<br />
<br />
<br />
Advantages of this approach:<br />
 - This makes the vobject model is much closer to the most common idea <br />
of objects as &quot;methods&quot; + &quot;properties&quot;.<br />
<br />
 - A purely dynamic implementation is easy using maps and lists.<br />
<br />
 - A static implementation (where the underlying properties are <br />
zero-memory-overhead) is straightforward using code generation.<br />
<br />
 - Serialization, peristance, synchronization and replication are easier <br />
since purely declarative data (state) is distinct from the imperative <br />
methods that manipulate it.<br />
<br />
<br />
Disadvantages:<br />
 - It &quot;isn't VOS&quot; since it discards the last trappings of the s4 vobject <br />
model<br />
<br />
 - It's going back to the drawing board (again) (not completely, but it <br />
does mean some work redesigning the VOS APIs, the XOD format, changing <br />
the code generator, etc)<br />
<br />
Thoughts?<br />
<br />
-- <br />
[ Peter Amstutz ][ tetron@interreality.org ][peter.amstutz@tseboston.com]<br />
[Lead Programmer][Interreality Project][Virtual Reality for the Internet]<br />
[ VOS: Next Generation Internet Communication][ http://interreality.org ]<br />
[ http://interreality.org/~tetron ][ pgpkey:  pgpkeys.mit.edu  18C21DF7 ]<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,246,246#msg-246</guid>
      <pubDate>Thu, 01 May 2008 22:31:12 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] Re: Recommendations needed for cool new technologies!</title>
      <link>http://interreality.org/phorum/read.php?2,243,244#msg-244</link>
      <author></author>
      <description><![CDATA[(And also)<br />
                                    <br />
I just saw it on CNN.com: <br />
Student 'Twitters' his way out of<br />
Egyptian jail<br />
http://www.cnn.com/2008/TECH/04/25/twitter.buck/index.html <br />
<br />
<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,243,244#msg-244</guid>
      <pubDate>Mon, 28 Apr 2008 21:39:28 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] Recommendations needed for cool new technologies!</title>
      <link>http://interreality.org/phorum/read.php?2,243,243#msg-243</link>
      <author></author>
      <description><![CDATA[Recommendations needed for cool new technologies!<br />
<br />
Hi all- <br />
<br />
I'm looking for ideas for 'what's new in technology' <br />
meant to introduce cool or free new stuff that may have <br />
some bearing. Please send anything interesting that <br />
you've come across to me. It doesn't have to be VOS-<br />
related necessarily - anything new and interesting <br />
on the web or pertaining to digital media could fit.<br />
<br />
Just to give you an idea of some stuff covered last <br />
time, the main items were: <br />
<br />
&quot;Turn your computer into a TV.&quot;<br />
https://www.getmiro.com/about/what-is-miro.php<br />
<br />
Send FREE messages to any Mobile Phone** No charge <br />
for sending. Receiver may incur charges depending on <br />
their carrier and plan.<br />
http://gizmosms.com/<br />
http://www.text4free.net/<br />
<br />
openid:<br />
http://openid.net/<br />
<br />
Scribd is trying to be the youtube for documents <br />
where anyone can upload PDFs, Word docs, etc. They <br />
have created an alternative to the PDF format called <br />
iPaper which loads faster than a PDF and has some <br />
security features that PDF doesn't (e.g. you can't <br />
download the documents).<br />
<br />
http://www.scribd.com/ipaper<br />
<br />
This is Flash demo that shows a page-turning effect <br />
when you click the pages:<br />
<br />
http://www.rubenswieringa.com/code/as3/flex/Book/<br />
<br />
Here's another example of a page-turning effect:<br />
<br />
http://www.openlibrary.org/details/intlepisode00jamearch<br />
<br />
pretty cool sounding project to build a highly <br />
scalable document storage system:<br />
<br />
http://incubator.apache.org/couchdb/<br />
<br />
Cheap multi-touchscreen and digital whiteboard <br />
(and 3d viewer):<br />
http://www.ted.com/index.php/talks/view/id/245<br />
<br />
1) The Sophie Project is an open-source multi-media <br />
alternative to PDF for books.<br />
<br />
Here's a short paper describing why an alternative <br />
to HTML and PDF is needed for electronic books:<br />
<br />
http://www.scribd.com/doc/33485/Introduction-to-Sophie<br />
<br />
Here are a few Quicktime videos of what an early <br />
version of Sophie looks like:<br />
<br />
http://www.futureofthebook.org/sophie/files/Making_a_Sophie_Book.mov<br />
<br />
http://www.futureofthebook.org/sophie/files/sophie_beethoven_demo.mov<br />
<br />
And here's the main site:<br />
<br />
http://www.sophieproject.org/<br />
<br />
<br />
Ted Nelson, the inventor of the term &quot;hypertext&quot;, <br />
gave a presentation about &quot;transclusion&quot; or how <br />
to include one document within another:<br />
<br />
http://video.google.com/videoplay?docid=-8329031368429444452<br />
<br />
Here are some visualization resources that the <br />
publishers might be interested in:<br />
<br />
* There are sites where you can upload a data set and <br />
various visualization are generated and displayed:<br />
<br />
http://services.alphaworks.ibm.com/manyeyes/home<br />
<br />
http://www.data360.org/index.aspx<br />
<br />
http://www.swivel.com/<br />
<br />
Here's a short article about it:<br />
<br />
http://radar.oreilly.com/archives/2007/01/ibm-wants-many-eyes-on-visuali.html<br />
<br />
<br />
There's a free program called &quot;Processing&quot; which <br />
you can use to create visualizations.  Here's a <br />
gallery of images:<br />
<br />
http://processing.org/exhibition/index.html<br />
<br />
<br />
Here's a nice chart showing different visualizations <br />
(roll your mouse over the squares).<br />
<br />
http://www.visual-literacy.org/periodic_table/periodic_table.html<br />
<br />
<br />
<br />
- Jason<br />
<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,243,243#msg-243</guid>
      <pubDate>Mon, 28 Apr 2008 21:28:02 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] Re: s5 vobject properties</title>
      <link>http://interreality.org/phorum/read.php?2,238,242#msg-242</link>
      <author>reed</author>
      <description><![CDATA[I'm worried about introducing yet more complexity into S5. You know that this is<br />
a big concern of mine.<br />
<br />
What is the exact overhead for having entries in the child list for embedded<br />
properties?   You need a contextual name, and you need the object.  The list<br />
itself stores the position value.  The EmbeddedProperty object stored in the<br />
Component could implement the &quot;child list entry&quot; interface and store its own<br />
contextual name (which would be constant for each kind of embedded property), <br />
so the only overhead would be the pointer to the EmbeddedProperty object in <br />
the list.  This is greater than zero, so it wouldn't be &quot;zero overhead&quot;, but <br />
it would let you treat properties and children in the nice and flexible way,<br />
and it's only a pointer's worth of overhead.  Or it could be an index into<br />
something else instead of a native pointer and we could cap it at 32 bits <br />
or whatever if you're really trying to shave bits off there.<br />
<br />
Reed<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,238,242#msg-242</guid>
      <pubDate>Fri, 25 Apr 2008 08:48:52 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] Re: s5 vobject properties</title>
      <link>http://interreality.org/phorum/read.php?2,238,241#msg-241</link>
      <author>Peter Amstutz</author>
      <description><![CDATA[On Thu, Apr 24, 2008 at 11:39:01AM -0400, Reed Hedges wrote:<br />
&gt; <br />
&gt; Properties as child vobjects is too useful to get rid of I think.  If <br />
&gt; properties are always embedded, then you can't have two vobjects share <br />
&gt; a property, which is one of the most important features of VOS.  They <br />
&gt; also can't be remote for whatever reason, and you can't use the normal <br />
&gt; Vobject/Metaobject/Component stuff to create a specialized kind of <br />
&gt; property. These are also critical features.<br />
&gt; <br />
&gt; I'm still not clear on why properties as some kind of embedded <br />
&gt; children won't work. Can you give an example?  Yes, the parent object <br />
&gt; has to keep track of which children are embedded and which aren't, and <br />
&gt; there's overhead there, but it shouldn't be that big of a deal, <br />
&gt; especially since in most cases they will be a small bounded set of <br />
&gt; known properties (not a huge list).  You would have to have some proxy <br />
&gt; fake vobject to give to the site/host for remote objects to contact, <br />
&gt; of course, but is that also too much?  What I liked about your <br />
&gt; embedded-properties comprimise is that it ought to let one switch a <br />
&gt; property from embedded to non-embedded transparently.  And it's one <br />
&gt; less extra thing for applications/tools to interact with -- another <br />
&gt; great thing about VOS we should preserve (small number of basic <br />
&gt; operations for apps and programmers to worry about.)<br />
<br />
The gist of the problem is that my goal for &quot;embedded children&quot; was <br />
ideally that there would be zero overhead.  For example if you have a 32 <br />
bit integer property, the underlying storage (in the C++ class or <br />
whatever) ought to only require exactly one 32 bit integer -- four <br />
bytes.  The parent vobject handles messages to/from the embedded <br />
property, and synthesizes a stand-in pseudo-vobject on demand if the <br />
embedded property needed to be accessed independently.  In other words, <br />
rather than having an entry in the child list specifically for the <br />
embedded property (which is redundant, if you have 100,000 instances of <br />
that vobject type, you need to have that child entry repeated 100,000 <br />
times), accessing the property is handled through reflection and code <br />
generation.<br />
<br />
Unfortunately this approach raises a number of design questions that I'm <br />
not entirely happy with.<br />
<br />
 1) The whole point is for embedded children show up in the child list.  <br />
If the embedded children doesn't have a position assigned to it (zero <br />
overhead, remember) then what position does it show up at?<br />
<br />
 2) If there are multiple components, what is the best way to <br />
merge or concatinate the embedded children lists?<br />
<br />
 3) What is the least supprising behavior when a user tries to remove, <br />
replace, or reorder an embedded child entry?<br />
<br />
 4) What vobject identifier is assigned to the embedded child?  Is it <br />
based on the parent vobject id, or should it be assigned entirely <br />
independently?<br />
<br />
 5) Ideally when serializing a vobject, embedded properties should be <br />
stored as efficiently as possible.  In addition, my thinking was that <br />
embedded properties would correspond to database columns in a future <br />
object/relational mapping scheme.  If embedded properties are treated <br />
like vobjects, that likely adds a layer of complexity beyond just <br />
storing data.<br />
<br />
Now, I'm not saying this design can't be made to work.  However, the <br />
most obvious solution means adding special &quot;embedded child&quot; entries to <br />
the child list of every vobject of a particular type.  Meaning, if an <br />
vobject type is used 100,000 times, there are 100,000 child list entries <br />
which are mostly redundant, but have to be there just in case...<br />
<br />
&gt; Basically, we just need another layer in the type hierarchy, in a <br />
&gt; sense.  You have basic Vobject-like things that sites/hosts (not sure <br />
&gt; which) can deliver messages to and which can send messages, and which <br />
&gt; have URLs and can be linked to by Vobjects.  Below that are Real <br />
&gt; Vobjects and Embedded Properties. Embedded properties are deficient or <br />
&gt; special-case Vobject-like things in that they are simply missing type <br />
&gt; extensibility and children and other features that real Vobjects have. <br />
&gt; They can be very simple C++ objects just holding their data buffer, or <br />
&gt; perhaps just a reference to their &quot;owner&quot; vobjects which hold their <br />
&gt; data for them, if that is more efficient.<br />
<br />
I see.  You're thinking of the s4 design where properties == vobjects, <br />
therefore s5 embedded properties == lightweight vobjects.  That's true, <br />
to some extent, but the goals were also to have zero (memory) overhead <br />
beyond the storage space for the actual data, and to have a more <br />
straightforward data model of vobject state so that serialization and <br />
persistance can be implemented efficiently.<br />
<br />
So my concern is that the old vobject child list model may be the best <br />
way to achive to these goals, so it is at least worth examining the <br />
issues and alternatives before plowing ahead with a complicated <br />
compromise solution.<br />
<br />
On alternative I am considering would be to change the child list from <br />
an associative array to a property map.  Entries in the map could be <br />
either embedded properties or dynamic properties, but since it would be <br />
a map there wouldn't be any ordering issues.  Ordered lists (necessary <br />
for applications like hypervos) would still be possible, but would <br />
stored as properties (so you would have a property would be a list of <br />
outgoing links.)<br />
<br />
In this scheme one could share the same value among multiple properties <br />
could be acomplished by &quot;overriding&quot; the embedded property with a <br />
dynamic property linking to the shared value.<br />
<br />
This idea is still a little half baked, so I will follow up with <br />
examples when I have nailed the design down a bit more.<br />
<br />
[ Peter Amstutz ][ tetron@interreality.org ][peter.amstutz@tseboston.com]<br />
[Lead Programmer][Interreality Project][Virtual Reality for the Internet]<br />
[ VOS: Next Generation Internet Communication][ http://interreality.org ]<br />
[ http://interreality.org/~tetron ][ pgpkey:  pgpkeys.mit.edu  18C21DF7 ]<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,238,241#msg-241</guid>
      <pubDate>Thu, 24 Apr 2008 23:20:38 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] Re: s5 vobject properties</title>
      <link>http://interreality.org/phorum/read.php?2,238,240#msg-240</link>
      <author>reed</author>
      <description><![CDATA[In other words, I sort of imagined it like this:<br />
<br />
<br />
<br />
class Entity <br />
{<br />
  handleMessage(); <br />
  set&lt;Entity*&gt; parents;<br />
  string url;<br />
}<br />
<br />
class Link <br />
{<br />
  string cname;<br />
  int pos;<br />
  Entity *child;<br />
  Entity *parent;<br />
}<br />
<br />
class Vobject : Entity <br />
{<br />
  list&lt;Link&gt; children;<br />
  vector&lt;EmbeddedProperty&gt; embeddedProperties;<br />
  list&lt;Component*&gt; components;<br />
  etc.<br />
}<br />
<br />
class PropertyCore <br />
{<br />
  read();<br />
  write();<br />
  dataBuffer;<br />
  etc.<br />
}<br />
<br />
class EmbeddedProperty : Entity, PropertyCore <br />
{<br />
  Vobject *owner;<br />
}<br />
<br />
class PropertyVobject : Component, PropertyCore<br />
{<br />
}<br />
<br />
<br />
class Site {<br />
  set&lt;Entity*&gt; entities;<br />
}<br />
<br />
<br />
<br />
So if a host or site has entities foo, bar, baz, you can send messages to<br />
vip://site/foo, vip://site/bar, vip://site/baz, and they could be vobjects or<br />
embedded properties.  An &quot;Entity&quot; is basically &quot;something that can be linked to<br />
and can receive messages&quot;, so it includes both embedded and non-embedded<br />
objects.<br />
<br />
I know this is simplified but does this make sense?<br />
<br />
Reed<br />
<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,238,240#msg-240</guid>
      <pubDate>Thu, 24 Apr 2008 12:24:28 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] Re: s5 vobject properties</title>
      <link>http://interreality.org/phorum/read.php?2,238,239#msg-239</link>
      <author>reed</author>
      <description><![CDATA[Properties as child vobjects is too useful to get rid of I think.   If<br />
properties are always embedded, then you can't have two vobjects share a<br />
property, which is one of the most important features of VOS.  They also can't<br />
be remote for whatever reason, and you can't use the normal<br />
Vobject/Metaobject/Component stuff to create a specialized kind of property. These<br />
are also critical features.<br />
<br />
I'm still not clear on why properties as some kind of embedded children won't<br />
work. Can you give an example?  Yes, the parent object has to keep track of<br />
which children are embedded and which aren't, and there's overhead there, but it<br />
shouldn't be that big of a deal, especially since in most cases they will be a<br />
small bounded set of known properties (not a huge list).  You would have to have <br />
some proxy fake vobject to give to the site/host for remote objects to contact, <br />
of course, but is that also too much?  What I liked about your embedded-properties <br />
comprimise is that it ought to let one switch a property from embedded to <br />
non-embedded transparently.  And it's one less extra thing for<br />
applications/tools to interact with -- another great thing about VOS we should<br />
preserve (small number of basic operations for apps and programmers to worry about.)<br />
<br />
<br />
&gt; Do<br />
&gt; the fields have a fixed position in the list?  <br />
<br />
?<br />
<br />
<br />
&gt; What happens when someone <br />
&gt; tries to insert a link in the child list between embedded child entries?  <br />
<br />
Then their positions change... not sure I see the problem... The<br />
ParentChildRelation (or whatever its called now) just points to the embedded<br />
property that happens to be inside its owner Vobject object, rather than a stand<br />
alone Vobject object.  Still has a name, position, and the parent vobject can<br />
just treat it the same way as the other members of its child list when it comes<br />
to ordering and iterating and finding children etc.<br />
<br />
<br />
&gt; Or tries to replace an embedded child?  Or remove it?<br />
<br />
Similar to a normal vobject.  The Vobject that owns is still responsible for it<br />
and does all work associated with it if some other Vobject has a child link to<br />
it. Otherwise, deletes it.  <br />
<br />
I guess Vobjects would also need messages to ask them to create new embedded properties<br />
as well, so you could recreate the embedded property.<br />
<br />
&gt; <br />
&gt;  * In order to not have to distinguish between an embedded vobject and a <br />
&gt; real one, they need to use the same identification scheme.  Which means <br />
&gt; there needs to be a way to assign or synthesize an identifier which can <br />
&gt; be used to identify the embedded child uniquely from the parent.<br />
<br />
This should be possible, no?  The vobject can basically contain Property objects<br />
which are capable of handling remote message same as stand alone properties, and<br />
give those to the site/host to keep in its list.  So it gets a unique<br />
identifier, is that hard for some reason?<br />
<br />
(Or rather than a normal Property, could be a special EmbeddedProperty type that implements the same interface as stand<br />
alone vobjects for receiving messages, etc.)<br />
<br />
<br />
Basically, we just need another layer in the type hierarchy, in a sense.  You<br />
have basic Vobject-like things that sites/hosts (not sure which) can deliver messages<br />
to and which can send messages, and which have URLs and can be linked to by<br />
Vobjects.  Below that are Real Vobjects and Embedded<br />
Properties. Embedded properties are deficient or special-case Vobject-like<br />
things in that they are simply missing<br />
type extensibility and children and other features that real Vobjects have. They<br />
can be very simple C++ objects just holding their data buffer, or perhaps just <br />
a reference to their &quot;owner&quot; vobjects which hold their data for them, if that is<br />
more efficient.<br />
<br />
But maybe I'm missing some of the issues here...<br />
<br />
Reed<br />
<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,238,239#msg-239</guid>
      <pubDate>Thu, 24 Apr 2008 11:39:15 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] s5 vobject properties</title>
      <link>http://interreality.org/phorum/read.php?2,238,238#msg-238</link>
      <author>Peter Amstutz</author>
      <description><![CDATA[Things have been quiet lately, but I assure you, we are still working!<br />
<br />
Anyway, something I've been mulling over --<br />
<br />
One of the planned changes in the design of s5 as compared to s4 is the <br />
integration of plain-old-data properties as part of the vobject class <br />
definition.  In s3 and s4, property data (simple stuff like integers, <br />
strings, position vectors, etc) is stored by special vobjects with a <br />
special &quot;property&quot; type.  This has some nice advantages in that the <br />
properties describing a vobject are just child links to other vobjects, <br />
so browsing and editing vobject structures is very straightforward.<br />
<br />
The disadvantage of this scheme is that it is very inefficient.  It <br />
results in vast amounts of overhead for storing what amounts to a field <br />
in a data structure, and it also introduces coordination issues among <br />
property vobjects that should otherwise be logically tied closely <br />
together.  It would be much better (more memory efficient among other <br />
things) to be able to store simple data as part of the vobject class <br />
directly.<br />
<br />
So, for s5, the idea I originally had was to try and meet these goals <br />
halfway and have &quot;embedded children&quot;.  These would be sort of &quot;virtual <br />
vobjects&quot; (hah) that would appear to be child vobjects, but be managed <br />
entirely by the parent vobject they are embedded in.  This would combine <br />
the benefits of the &quot;everything is a vobject&quot; abstraction with the <br />
advantages of storing things more efficiently.<br />
<br />
As always, though, the devil is in the details:<br />
<br />
 * For the &quot;embedded child&quot; concept to work (or even make sense), these <br />
&quot;virtual vobject&quot; property fields need to show up in the child list.  Do <br />
the fields have a fixed position in the list?  What happens when someone <br />
tries to insert a link in the child list between embedded child entries?  <br />
Or tries to replace an embedded child?  Or remove it?<br />
<br />
 * In order to not have to distinguish between an embedded vobject and a <br />
real one, they need to use the same identification scheme.  Which means <br />
there needs to be a way to assign or synthesize an identifier which can <br />
be used to identify the embedded child uniquely from the parent.<br />
<br />
 * What happens when a vobject of the same name and same &quot;property&quot; type <br />
is added to the child list?  Is it added to the list (resulting in two <br />
fields that seemingly mean the same thing) or is the value assigned to <br />
the existing embedded child?<br />
<br />
I have ideas about how to deal with these various issues, but generally <br />
they involve adding additional management data around the embedded <br />
children.  Unfortunately, that would be somewhat self-defeating, since <br />
the original goal was avoid having any storage overhead and work with <br />
just the bare field of the parent class.<br />
<br />
Because it is so ambigious what the best (or even correct) semantics are <br />
for vobject properties as embedded children, I wonder if it is best just <br />
to drop the idea entirely.  Another idea I have been mulling over is for <br />
vobjects to have an unordered bag of properties.  This would primarily <br />
be embedded fields manipulated via reflection, but probably also allow <br />
new properties to be added on the fly.  In this scheme, properties could <br />
include parent/child links or lists of links, which would likely mean <br />
there wouldn't need to be a single child list -- although actually, the <br />
set of properties would be used in a similar fashion to the s4 child <br />
list, without the strict ordering constraint.<br />
<br />
Overall, such a change would align the general VOS data/object model <br />
much more closely to that of mainstream object-oriented programming <br />
languages (particularly Python, C#) than it has previously.  In <br />
particular, the child list in s4 was designed with XML in mind, where <br />
preserving ordering in tree structures is important.<br />
<br />
Thoughts?  To a large extent the &quot;a vobject is a list of links to other <br />
vobjects&quot; concept is pretty fundamental to s3 and s4 VOS.  On the other <br />
hand, I've come to the conclusion that it makes an efficient <br />
implementation very difficult, so it is worth considering other ideas.<br />
<br />
-- <br />
[ Peter Amstutz ][ tetron@interreality.org ][peter.amstutz@tseboston.com]<br />
[Lead Programmer][Interreality Project][Virtual Reality for the Internet]<br />
[ VOS: Next Generation Internet Communication][ http://interreality.org ]<br />
[ http://interreality.org/~tetron ][ pgpkey:  pgpkeys.mit.edu  18C21DF7 ]<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,238,238#msg-238</guid>
      <pubDate>Wed, 23 Apr 2008 00:54:26 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] Re: s5 site ids</title>
      <link>http://interreality.org/phorum/read.php?2,162,236#msg-236</link>
      <author>Peter Amstutz</author>
      <description><![CDATA[On Fri, Apr 04, 2008 at 01:46:46AM +0000, Lalo Martins wrote:<br />
&gt; Also spracht Lalo Martins (Thu, 03 Apr 2008 13:40:51 +0000):<br />
&gt; &gt; Sorry to resurrect this, but after working with s5 for two months, I<br />
&gt; &gt; still have the same concerns, only more so :-)<br />
&gt; <br />
&gt; Actually, never mind; I had an epiphany ;-)<br />
&gt; <br />
&gt; Here's basically how it works...<br />
&gt; <br />
&gt; My VOS browser is looking at a remote site, and finds an object of a type <br />
&gt; it doesn't know.  Now, for some reason, it wants to introspect this <br />
&gt; object (maybe to build a python wrapper?).  What can it do?<br />
&gt; <br />
&gt; Well, it just asks the remote host to send over a replica of the site <br />
&gt; containing that class.  My local replica won't be considered <br />
&gt; &quot;authoritative&quot;, since the host don't have the private key, but then <br />
&gt; again the remote host doesn't either -- library sites are &quot;ghost&quot; sites, <br />
&gt; that no host has the private key for.<br />
&gt; <br />
&gt; Now, this could easily be done by treating Library objects specially, and <br />
&gt; putting in place a system to replicate them.  But why make special cases, <br />
&gt; when there's already a perfectly good system to replicate sites?<br />
<br />
Yes, that's exactly how it is intended to work.  That's why limiting <br />
access to the private key (signing power) is important to the integrity <br />
of the system.  It allows you to receive data from third parties on <br />
behalf of the source site with some assurance that the data has not been <br />
tampered with.  Similar to how Bittorrent works, for example.<br />
<br />
Keep in mind we're only talking about the APIs, not the actual <br />
implementation, so it makes sense that your code should bind to a <br />
specific version of the API that was written against.  Obviously you <br />
can't make changes to an API without also changing the client code that <br />
uses it.  As a third party, if you want to change a class definition, <br />
you have the option of extending an existing class to define a class on <br />
a site you control.<br />
<br />
As for managing changes to existing classes, I have been meaning to add <br />
a per-class version number system that can be used to determine <br />
forwards/backwards compatability.  Something along the lines of <br />
major.minor.revision, where<br />
<br />
 * different major versions are incompatible (v1 and v2 classes can't <br />
interporate at all)<br />
 * different minor version are backwards compatible (eg v1.4 can access <br />
an object of v1.2, but not the other way aorund)<br />
 * different revisions are forwards and backwards compatible (v1.4.5 and <br />
v1.4.10 are interchangable)<br />
<br />
This would be separate from the notion of site of global revisions at <br />
the site level.<br />
<br />
-- <br />
[ Peter Amstutz ][ tetron@interreality.org ][peter.amstutz@tseboston.com]<br />
[Lead Programmer][Interreality Project][Virtual Reality for the Internet]<br />
[ VOS: Next Generation Internet Communication][ http://interreality.org ]<br />
[ http://interreality.org/~tetron ][ pgpkey:  pgpkeys.mit.edu  18C21DF7 ]<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,162,236#msg-236</guid>
      <pubDate>Thu, 10 Apr 2008 12:17:39 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] Re: s5 site ids</title>
      <link>http://interreality.org/phorum/read.php?2,162,235#msg-235</link>
      <author>lalo</author>
      <description><![CDATA[Also spracht Lalo Martins (Thu, 03 Apr 2008 13:40:51 +0000):<br />
&gt; Sorry to resurrect this, but after working with s5 for two months, I<br />
&gt; still have the same concerns, only more so :-)<br />
<br />
Actually, never mind; I had an epiphany ;-)<br />
<br />
Here's basically how it works...<br />
<br />
My VOS browser is looking at a remote site, and finds an object of a type <br />
it doesn't know.  Now, for some reason, it wants to introspect this <br />
object (maybe to build a python wrapper?).  What can it do?<br />
<br />
Well, it just asks the remote host to send over a replica of the site <br />
containing that class.  My local replica won't be considered <br />
&quot;authoritative&quot;, since the host don't have the private key, but then <br />
again the remote host doesn't either -- library sites are &quot;ghost&quot; sites, <br />
that no host has the private key for.<br />
<br />
Now, this could easily be done by treating Library objects specially, and <br />
putting in place a system to replicate them.  But why make special cases, <br />
when there's already a perfectly good system to replicate sites?<br />
<br />
best,<br />
                                               Lalo Martins<br />
-- <br />
      So many of our dreams at first seem impossible,<br />
       then they seem improbable, and then, when we<br />
       summon the will, they soon become inevitable.<br />
                           -----<br />
                  http://lalomartins.info/<br />
GNU: never give up freedom              http://www.gnu.org/<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,162,235#msg-235</guid>
      <pubDate>Thu, 03 Apr 2008 21:47:13 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] More on the web site</title>
      <link>http://interreality.org/phorum/read.php?2,234,234#msg-234</link>
      <author>reed</author>
      <description><![CDATA[I've started putting together a new website in (s4) hypervos at<br />
http://interreality.org:4088/home. <br />
<br />
It's simplified from the current site, and has less info.  As we update things<br />
like documentation for S5 and make releases, we can expand the site.  I make a<br />
wiki page (DraftDocs) that links to some of the random notes and drafts that are<br />
in the wiki, and also links to the old Creating Interreality manual for people<br />
that want more info.<br />
<br />
Any comments?<br />
<br />
I still have to:<br />
 <br />
  * Improve the screenshots, either make new ones from the first S5 app<br />
    prototype, or get some old ones<br />
  * Improve the colors a bit<br />
  * Make a new background image<br />
  * Tweak and improve the layout and whitespace. It looks ok on my screen but<br />
    will try a few others.<br />
  * Make some &quot;compatibity&quot; pages from the old site that get some google<br />
    referrers<br />
  * Add a few more icons and illustrative figures.<br />
<br />
<br />
Reed<br />
<br />
<br />
-- <br />
http://interreality.org/~reed<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,234,234#msg-234</guid>
      <pubDate>Thu, 03 Apr 2008 15:45:55 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] Re: s5 site ids</title>
      <link>http://interreality.org/phorum/read.php?2,162,233#msg-233</link>
      <author>lalo</author>
      <description><![CDATA[Sorry to resurrect this, but after working with s5 for two months, I <br />
still have the same concerns, only more so :-)<br />
<br />
Also spracht Lalo Martins (Tue, 12 Feb 2008 04:55:19 +0000):<br />
&gt; Also spracht Peter Amstutz (Mon, 11 Feb 2008 17:43:45 -0500):<br />
&gt;&gt; With regard to shipping the private key, my thinking is that publishing<br />
&gt;&gt; an API is like specifying a protocol, and that you really want a way of<br />
&gt;&gt; unambigiously referring to a specific API as published by a specific<br />
&gt;&gt; entity at a specific version.<br />
&gt; <br />
&gt; Hmm... no, I don't think I for one want that.  It would mean I can't<br />
&gt; make changes to third-party library from source A and still have<br />
&gt; third-party software from source B work against it without a manual<br />
&gt; hack-and- recompile.  That would be against the spirit of Free Software,<br />
&gt; and the letter of the LGPLv3 (which I see you picked for s5 and I<br />
&gt; approve of).<br />
&gt; <br />
&gt; Yes, it would be nice to have a way of *referring* to a specific (...)<br />
&gt; as you say.  But having all code by default *depend* on a specific<br />
&gt; version published by a specific entity?  Bad idea, IMO.<br />
&gt; <br />
&gt; For the matter, I don't think Libraries should be distributed as a site,<br />
&gt; at all.  I think they should just import the Library object into the<br />
&gt; local host (possibly inside some &quot;safe&quot; location like /otd or /libraries<br />
&gt; or even /lib).  But it seems you have put some thought behind this<br />
&gt; decision; would you mind sharing your reasoning with us?<br />
<br />
best,<br />
                                               Lalo Martins<br />
-- <br />
      So many of our dreams at first seem impossible,<br />
       then they seem improbable, and then, when we<br />
       summon the will, they soon become inevitable.<br />
                           -----<br />
                  http://lalomartins.info/<br />
GNU: never give up freedom              http://www.gnu.org/<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,162,233#msg-233</guid>
      <pubDate>Thu, 03 Apr 2008 09:41:21 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] Wiki editing fixed</title>
      <link>http://interreality.org/phorum/read.php?2,230,230#msg-230</link>
      <author>reed</author>
      <description><![CDATA[I fixed the wiki permissions so that anyone who is logged in should be able to<br />
edit pages.  Click the &quot;login&quot; link at the top.  If you don't have a login yet,<br />
follow the instructions, though it's a bit strange. You have to go to<br />
UserPreferences, fill in the form (enter your password twice, ignore the<br />
confusing label). <br />
<br />
Let me know if there are any problems.<br />
<br />
There is a seperate group that has permission to delete and revert pages.  If<br />
you need a page deleted or want that permission let me know.<br />
<br />
Reed<br />
<br />
-- <br />
http://interreality.org/~reed<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,230,230#msg-230</guid>
      <pubDate>Mon, 24 Mar 2008 09:01:53 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] Re: Choosing a GUI toolkit for S5</title>
      <link>http://interreality.org/phorum/read.php?2,222,229#msg-229</link>
      <author>reed</author>
      <description><![CDATA[Well, I've been reading the docs for Qt4 and experimenting with the <br />
example programs they provide, and I'm leaning towards it as a toolkit.<br />
<br />
Does anyone have any input on choosing a toolkit?<br />
<br />
<br />
<br />
  * Qt4 looks nice, even in Gnome-- much better than Qt3 did<br />
  * It has some nice built in widgets and features that we can use, like <br />
dockable panes that can be dragged around, etc.<br />
  * It has some good 2d graphics drawing features<br />
  * Trolltech is more actively/quickly working on improving it and <br />
adding new features and supporting all platforms<br />
  * It has an embedded web browser widget (using WebKit) that's both <br />
easy to use and complete<br />
  * It has good support for some mobile platforms and they're actively <br />
working on that<br />
  * QtDesigner is freely available, and is a pretty good design tool, in <br />
my very brief experience with it.  It could be a nice option for rapidly <br />
developing new type-specific GUI components.<br />
<br />
I still hate qmake.  But maybe we can find or write some code for scons <br />
that replaces it (runs the MOC code generator, localization tool, etc.)<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,222,229#msg-229</guid>
      <pubDate>Sun, 23 Mar 2008 11:25:52 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] Re: Fun with the generator</title>
      <link>http://interreality.org/phorum/read.php?2,225,228#msg-228</link>
      <author>lalo</author>
      <description><![CDATA[Also spracht Peter Amstutz (Tue, 18 Mar 2008 11:09:24 -0400):<br />
&gt; On Mon, Mar 17, 2008 at 07:33:24PM +0000, Lalo Martins wrote:<br />
&gt;&gt; Well.  I spun off the web MVC stuff into a new library (hypervos). <br />
&gt;&gt; That opened a pandora box of generator fun :-)<br />
&gt; <br />
&gt; Yea, as you've probably figured out by now, writing good C++ is hard,<br />
&gt; but automatically generating good C++ is even harder.<br />
<br />
:-D<br />
<br />
&gt;&gt; 2: The #define guards use only the file name.  If you have headers with<br />
&gt;&gt; the same name in different libraries (eg MVC.hh)... you get my point I<br />
&gt;&gt; think.  I manually changed them to eg #define _hypervos_MVC_hh_, might<br />
&gt;&gt; make the change in the generator later.<br />
&gt; <br />
&gt; Oops.  Yes, the generator should be smarter than that.  See my comment<br />
&gt; below about directory organization for headers.<br />
<br />
Fixed in my branch (assuming we agree _hypervos_MVC_hh_ is good enough).<br />
<br />
&gt;&gt; 3: Much worse happens if you have namespaces with the same name :-) the<br />
&gt;&gt; generated code has things like MVC::View all over, which of course<br />
&gt;&gt; generate &quot;ambiguous namespace reference&quot; errors galore.<br />
&gt; <br />
&gt; This is a bit of a pathalogical case, although hopefully now you see the<br />
&gt; reason for the site_xxx namespace.<br />
&gt; <br />
&gt; The brute force solution would be to have the generator go ahead and<br />
&gt; qualify everything with the excessively long site_xxx namespace, which I<br />
&gt; was trying to avoid purely for the sake of readability.<br />
<br />
Ah no, you're taking it a step further.  I'm referring to VOS Namespace <br />
objects, not C++ namespaces in general.  See, you already solved this <br />
problem ;-) since we encourage each library to ship one Library object, <br />
named the same as the library, and then a number of Namespace objects <br />
inside it.  Splitting a (VOS) Library in different (C++) libraries and/or <br />
directories would, yes, be a problem, but we'll cross that bridge when <br />
there is even water on the river ;-)<br />
<br />
What I'm talking about is...<br />
- Site 0011223344556677889900aabbccddee<br />
  - Library vos<br />
    - Namespace MVC<br />
- Site 6879706572766f73203474656877696e<br />
  - Library hypervos<br />
    - Namespace MVC<br />
<br />
See?  So that could be handled in C++ (and it's how I solved it by <br />
manually editing the files, but that means I can't atm run the generator <br />
on mod_vos or my other project) by qualifying it with vos::MVC:: or <br />
hypervos::MVC::<br />
<br />
&gt;&gt; 4: This is unrelated to the hypervos move, I noticed it earlier.  If my<br />
&gt;&gt; class &quot;Foo&quot; extends &quot;vos::core::Bar&quot;, then Foo.hh will have #include<br />
&gt;&gt; &quot;Bar.hh&quot;<br />
&gt;&gt; which of course won't work so well... should be &lt;vos/Bar.hh&gt; :-)<br />
&gt; <br />
&gt; Since I was originally focused on getting the libvos core to work, I<br />
&gt; didn't give too much thought to how the C++ headers should be explictly<br />
&gt; organized into directories.  Again, the brute force solution would be to<br />
&gt; have the headers mimic the namespace up to and including the site, which<br />
&gt; would be horribly verbose but would eliminate most of the ambigious<br />
&gt; cases.<br />
<br />
Again, you're forgetting we already have the handy Library object, which <br />
I'd like to encourage developers to keep unique-ish.  So &lt;vos/Bar.hh&gt; <br />
would do it (and, bonus of bonuses, already works with our current <br />
layout!), and it's what I made the generator do, in my branch.<br />
<br />
best,<br />
                                               Lalo Martins<br />
-- <br />
      So many of our dreams at first seem impossible,<br />
       then they seem improbable, and then, when we<br />
       summon the will, they soon become inevitable.<br />
                           -----<br />
                  http://lalomartins.info/<br />
GNU: never give up freedom              http://www.gnu.org/<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,225,228#msg-228</guid>
      <pubDate>Tue, 18 Mar 2008 20:01:27 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] Re: Fun with the generator</title>
      <link>http://interreality.org/phorum/read.php?2,225,227#msg-227</link>
      <author>Peter Amstutz</author>
      <description><![CDATA[On Mon, Mar 17, 2008 at 07:33:24PM +0000, Lalo Martins wrote:<br />
&gt; Well.  I spun off the web MVC stuff into a new library (hypervos).  That <br />
&gt; opened a pandora box of generator fun :-)<br />
<br />
Yea, as you've probably figured out by now, writing good C++ is hard, but <br />
automatically generating good C++ is even harder.<br />
<br />
&gt; Also, I'm not saying these need to be fixed urgently; just that we need <br />
&gt; to know about them for the future.<br />
<br />
I'm not surprised by any of these limitations you ran in to, I've been <br />
planning on fixing them when it became a real problem.<br />
<br />
&gt; 1: mod_vos.xod (and my other projects) extend a lot of classes from the <br />
&gt; new library.  But since the generator doesn't know about those, it <br />
&gt; reports broken links and generally doesn't know what to do.<br />
&gt; <br />
&gt; The answer to this may be in my plugin loader; I might try my hand at <br />
&gt; solving it later this week.<br />
<br />
At the moment, external libraries can successfully import from the main <br />
VOS namespace because it is available in the generator by virtue of being <br />
compiled into libvos.  However, it should be able to import from other <br />
libraries in general.  A stopgap solution would be to add an option to the <br />
to generator pre-load additional XOD files.<br />
<br />
Eventually we should have a general set of strategies for searching for <br />
site replicas (local repositories, going on line, possibly extracting them <br />
from executables) so finding and importing an interface library will be no <br />
different from accessing and replicating any other vobject site (be it a <br />
3d world, hypervos, etc).<br />
<br />
I do like the idea of using the plugin loader to ask a binary library what <br />
its interface is.<br />
<br />
&gt; 2: The #define guards use only the file name.  If you have headers with <br />
&gt; the same name in different libraries (eg MVC.hh)... you get my point I <br />
&gt; think.  I manually changed them to eg #define _hypervos_MVC_hh_, might <br />
&gt; make the change in the generator later.<br />
<br />
Oops.  Yes, the generator should be smarter than that.  See my comment <br />
below about directory organization for headers.<br />
<br />
&gt; 3: Much worse happens if you have namespaces with the same name :-) the <br />
&gt; generated code has things like MVC::View all over, which of course <br />
&gt; generate &quot;ambiguous namespace reference&quot; errors galore.<br />
<br />
This is a bit of a pathalogical case, although hopefully now you see the <br />
reason for the site_xxx namespace.<br />
<br />
The brute force solution would be to have the generator go ahead and <br />
qualify everything with the excessively long site_xxx namespace, which I <br />
was trying to avoid purely for the sake of readability.<br />
<br />
&gt; 4: This is unrelated to the hypervos move, I noticed it earlier.  If my <br />
&gt; class &quot;Foo&quot; extends &quot;vos::core::Bar&quot;, then Foo.hh will have<br />
&gt; #include &quot;Bar.hh&quot;<br />
&gt; which of course won't work so well... should be &lt;vos/Bar.hh&gt; :-)<br />
<br />
Since I was originally focused on getting the libvos core to work, I <br />
didn't give too much thought to how the C++ headers should be explictly <br />
organized into directories.  Again, the brute force solution would be to <br />
have the headers mimic the namespace up to and including the site, which <br />
would be horribly verbose but would eliminate most of the ambigious cases.<br />
<br />
&gt; 5: Just to put in a positive note and because I like the number 5 better <br />
&gt; than 4, I'll say I found great joy in recent s5 work; in particular <br />
&gt; Vobject::clone() saved me hours of toil!<br />
<br />
That's good to hear :-) I slipped that one in as part of the template <br />
stuff I did (which you should take a look at, by the way.)<br />
<br />
-- <br />
[ Peter Amstutz ][ tetron@interreality.org ][peter.amstutz@tseboston.com]<br />
[Lead Programmer][Interreality Project][Virtual Reality for the Internet]<br />
[ VOS: Next Generation Internet Communication][ http://interreality.org ]<br />
[ http://interreality.org/~tetron ][ pgpkey:  pgpkeys.mit.edu  18C21DF7 ]<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,225,227#msg-227</guid>
      <pubDate>Tue, 18 Mar 2008 11:09:33 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] Re: Fun with the generator</title>
      <link>http://interreality.org/phorum/read.php?2,225,226#msg-226</link>
      <author>lalo</author>
      <description><![CDATA[Also spracht Lalo Martins (Mon, 17 Mar 2008 19:33:24 +0000):<br />
&gt; 1: mod_vos.xod (and my other projects) extend a lot of classes from the<br />
&gt; new library.  But since the generator doesn't know about those, it<br />
&gt; reports broken links and generally doesn't know what to do.<br />
&gt; <br />
&gt; The answer to this may be in my plugin loader; I might try my hand at<br />
&gt; solving it later this week.<br />
&gt; <br />
&gt; 2: The #define guards use only the file name.  If you have headers with<br />
&gt; the same name in different libraries (eg MVC.hh)... you get my point I<br />
&gt; think.  I manually changed them to eg #define _hypervos_MVC_hh_, might<br />
&gt; make the change in the generator later.<br />
&gt; <br />
&gt; 3: Much worse happens if you have namespaces with the same name :-) the<br />
&gt; generated code has things like MVC::View all over, which of course<br />
&gt; generate &quot;ambiguous namespace reference&quot; errors galore.<br />
&gt; <br />
&gt; 4: This is unrelated to the hypervos move, I noticed it earlier.  If my<br />
&gt; class &quot;Foo&quot; extends &quot;vos::core::Bar&quot;, then Foo.hh will have #include<br />
&gt; &quot;Bar.hh&quot;<br />
&gt; which of course won't work so well... should be &lt;vos/Bar.hh&gt; :-)<br />
&gt; <br />
&gt; 5: Just to put in a positive note and because I like the number 5 better<br />
&gt; than 4, I'll say I found great joy in recent s5 work; in particular<br />
&gt; Vobject::clone() saved me hours of toil!<br />
<br />
Fixed 2 and 4 today, may tackle 1 or 3 tomorrow.<br />
<br />
best,<br />
                                               Lalo Martins<br />
-- <br />
      So many of our dreams at first seem impossible,<br />
       then they seem improbable, and then, when we<br />
       summon the will, they soon become inevitable.<br />
                           -----<br />
                  http://lalomartins.info/<br />
GNU: never give up freedom              http://www.gnu.org/<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,225,226#msg-226</guid>
      <pubDate>Tue, 18 Mar 2008 09:19:32 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] Fun with the generator</title>
      <link>http://interreality.org/phorum/read.php?2,225,225#msg-225</link>
      <author>lalo</author>
      <description><![CDATA[Well.  I spun off the web MVC stuff into a new library (hypervos).  That <br />
opened a pandora box of generator fun :-)<br />
<br />
I'm a bit exhausted, so I'll go over them briefly; if you need more <br />
detail, ask, and I'll elaborate tomorrow.  Or check out my branch and <br />
play around yourself.<br />
<br />
Also, I'm not saying these need to be fixed urgently; just that we need <br />
to know about them for the future.<br />
<br />
1: mod_vos.xod (and my other projects) extend a lot of classes from the <br />
new library.  But since the generator doesn't know about those, it <br />
reports broken links and generally doesn't know what to do.<br />
<br />
The answer to this may be in my plugin loader; I might try my hand at <br />
solving it later this week.<br />
<br />
2: The #define guards use only the file name.  If you have headers with <br />
the same name in different libraries (eg MVC.hh)... you get my point I <br />
think.  I manually changed them to eg #define _hypervos_MVC_hh_, might <br />
make the change in the generator later.<br />
<br />
3: Much worse happens if you have namespaces with the same name :-) the <br />
generated code has things like MVC::View all over, which of course <br />
generate &quot;ambiguous namespace reference&quot; errors galore.<br />
<br />
4: This is unrelated to the hypervos move, I noticed it earlier.  If my <br />
class &quot;Foo&quot; extends &quot;vos::core::Bar&quot;, then Foo.hh will have<br />
#include &quot;Bar.hh&quot;<br />
which of course won't work so well... should be &lt;vos/Bar.hh&gt; :-)<br />
<br />
5: Just to put in a positive note and because I like the number 5 better <br />
than 4, I'll say I found great joy in recent s5 work; in particular <br />
Vobject::clone() saved me hours of toil!<br />
<br />
best,<br />
                                               Lalo Martins<br />
-- <br />
      So many of our dreams at first seem impossible,<br />
       then they seem improbable, and then, when we<br />
       summon the will, they soon become inevitable.<br />
                           -----<br />
                  http://lalomartins.info/<br />
GNU: never give up freedom              http://www.gnu.org/<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,225,225#msg-225</guid>
      <pubDate>Mon, 17 Mar 2008 15:33:57 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] Re: Choosing a GUI toolkit for S5</title>
      <link>http://interreality.org/phorum/read.php?2,222,224#msg-224</link>
      <author>reed</author>
      <description><![CDATA[Braden McDaniel wrote:<br />
&gt;&gt; http://interreality.org/wiki/ChoosingAGUIToolkit<br />
&gt; <br />
&gt; GTK+'s licence is LGPL, not GPL.<br />
&gt; <br />
&gt; Also, GTK+ can interact with OpenGL via GtkGLExt.<br />
&gt; <br />
&gt; Also, with regard to the language issue, Gtkmm is worth pointing out.<br />
&gt; Gtkmm is a very high quality modern C++-aware C++ wrapper for GTK+.<br />
&gt; <br />
<br />
<br />
Thanks, fixed.<br />
<br />
Reed<br />
<br />
<br />
<br />
-- <br />
http://interreality.org/~reed<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,222,224#msg-224</guid>
      <pubDate>Mon, 10 Mar 2008 20:02:31 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] Re: Choosing a GUI toolkit for S5</title>
      <link>http://interreality.org/phorum/read.php?2,222,223#msg-223</link>
      <author></author>
      <description><![CDATA[On Sun, 2008-03-09 at 12:55 -0400, reed wrote:<br />
&gt; Posted at: http://interreality.org/phorum/read.php?2,222,222#msg-222<br />
&gt; reed wrote:<br />
&gt; <br />
&gt; To help choose a GUI toolkit to use for the S5 user interface app, I made this comparison chart.  wxWidgets and Qt are the top contenders, though I added a few others to consider.<br />
&gt; <br />
&gt; If you have any corrections or know any of the missing pieces of data (&quot;unk&quot;), please correct it on the wiki or reply here.<br />
&gt; <br />
&gt; http://interreality.org/wiki/ChoosingAGUIToolkit<br />
<br />
GTK+'s licence is LGPL, not GPL.<br />
<br />
Also, GTK+ can interact with OpenGL via GtkGLExt.<br />
<br />
Also, with regard to the language issue, Gtkmm is worth pointing out.<br />
Gtkmm is a very high quality modern C++-aware C++ wrapper for GTK+.<br />
<br />
-- <br />
Braden McDaniel                           e-mail: &lt;braden@endoframe.com&gt;<br />
&lt;http://endoframe.com&gt;                    Jabber: &lt;braden@jabber.org&gt;<br />
<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,222,223#msg-223</guid>
      <pubDate>Sun, 09 Mar 2008 15:12:27 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] Choosing a GUI toolkit for S5</title>
      <link>http://interreality.org/phorum/read.php?2,222,222#msg-222</link>
      <author>reed</author>
      <description><![CDATA[To help choose a GUI toolkit to use for the S5 user interface app, I made this comparison chart.  wxWidgets and Qt are the top contenders, though I added a few others to consider.<br />
<br />
If you have any corrections or know any of the missing pieces of data (&quot;unk&quot;), please correct it on the wiki or reply here.<br />
<br />
Comparison chart here: http://interreality.org/wiki/ChoosingAGUIToolkit<br />
<br />
Reed]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,222,222#msg-222</guid>
      <pubDate>Sun, 09 Mar 2008 12:55:37 -0400</pubDate>
    </item>
    <item>
      <title>[vos-d] serialization</title>
      <link>http://interreality.org/phorum/read.php?2,221,221#msg-221</link>
      <author>Peter Amstutz</author>
      <description><![CDATA[My current task is working on a serialization framework for structs and Vobjects.  This will <br />
handle loading and saving state for vobjects, and provide the basis on which to implement <br />
marshaling and persistance.  Being able to load and save structs will also make it possible to <br />
start working on some of the upper layers of the VOS stack, such as A3DL (which needs to be able <br />
to efficiently represent data like vertex arrays.)  I have worked out an efficient template-based <br />
approach which supports arbitrary serialization/deserialization methods, so we can easily have <br />
binary, XML, YAML, JSON etc serializers, and message encoding for VOS network protocols will <br />
probably be built on the serialization framework as well.<br />
<br />
-- <br />
[ Peter Amstutz ][ tetron@interreality.org ][peter.amstutz@tseboston.com]<br />
[Lead Programmer][Interreality Project][Virtual Reality for the Internet]<br />
[ VOS: Next Generation Internet Communication][ http://interreality.org ]<br />
[ http://interreality.org/~tetron ][ pgpkey:  pgpkeys.mit.edu  18C21DF7 ]<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,221,221#msg-221</guid>
      <pubDate>Tue, 04 Mar 2008 11:19:08 -0500</pubDate>
    </item>
    <item>
      <title>[vos-d] Re: More new S5 classes/concepts</title>
      <link>http://interreality.org/phorum/read.php?2,156,220#msg-220</link>
      <author>Peter Amstutz</author>
      <description><![CDATA[On Mon, Mar 03, 2008 at 05:27:46PM -0500, Reed Hedges wrote:<br />
<br />
&gt; I was under the impression that, for the most part, you are always going <br />
&gt; to be working through Wrapper objects.  Is this true?<br />
<br />
The ultimate purpose of the wrappers is support marshaling for cross-language and <br />
cross-host method calls.  Since C++ doesn't have a built in interception facility, you have to <br />
insert some stub code in between the caller and the target.  One way to do this would be remote <br />
objects like we had in s4, but that doesn't handle the cross-language/cross-thread cases very <br />
well.  Instead, s5 has very lightweight wrappers which manage access to the underlying object.<br />
<br />
So yes, in normal code you almost always want to be working through the wrapper classes, since <br />
they make everything else work (marshaling, reference counting, promises).<br />
<br />
I'm willing to entertain naming schemes other than &quot;-Wrapper&quot;, I just don't want it to be the <br />
stem name for the simple reason that due to the semantics of C++ it would be ambigious whether <br />
you are working with a smart pointer or a copy of the actual object.  Possible alternatives:<br />
<br />
 VobjectWrapper<br />
 VobjectHandle<br />
 VobjectStub<br />
 VobjectPtr<br />
 VobjectRef<br />
<br />
-- <br />
[ Peter Amstutz ][ tetron@interreality.org ][peter.amstutz@tseboston.com]<br />
[Lead Programmer][Interreality Project][Virtual Reality for the Internet]<br />
[ VOS: Next Generation Internet Communication][ http://interreality.org ]<br />
[ http://interreality.org/~tetron ][ pgpkey:  pgpkeys.mit.edu  18C21DF7 ]<br />
<br />
<br />
_______________________________________________<br />
vos-d mailing list<br />
vos-d@interreality.org<br />
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d]]></description>
      <category>vos-d</category>
      <guid isPermaLink="true">http://interreality.org/phorum/read.php?2,156,220#msg-220</guid>
      <pubDate>Tue, 04 Mar 2008 09:55:21 -0500</pubDate>
    </item>
  </channel>
</rss>
