Hi<br><br>I thank you for your clear and detailed reply.<br>I hope that you do no mind if I think aloud.<br>In this mail, I think over the 3 protocol option you Frank said (within the&quot; == ... of my reflexion ===&quot; boundaries) and then I pose some questions to you and tell which api option I would prefer.<br>
<br>=== start of my reflexion ===<br><b>as to option 1.</b> with autogenerated feeds located at php page.<br>you say that is doesn&#39;t support searching, and a workaround for this would be to create lots of ids. For example, I see on <a href="http://www.kde-look.org/help/ghns.php" target="_blank">http://www.kde-look.org/help/ghns.php</a> the following variation of themes : soundthemes,mousethemes,kdmthemes,amarokthemes,plasmathemes,iconthemes.<br>


What I would consider doing if ever I used this 1st option would be to have lots of id names for example for materials :<br>materialswood,materialsmetal,materialsground,materialsglass,materialsnature...<br>one problem is we&#39;d need a materials feed that would lead to this list of materials.<br>


Because I do not want people in Blender to see all the different materials types from the beginning. User will want to download more kinds of data block than just materials : models, scripts, compositing nodes, logic bricks, armature setups, textures.<br>


I think that in the end, we would need a lot of Ids which could make the feed page too long to download when running Blender&#39;s assets manager. Unless we cache that page locally and refresh once a day on the Blender&#39;s plug in launch.<br>


There would not be a big problem from the web interface point of view to have as many ideas, as what <a href="http://kde-looks.org" target="_blank">kde-looks.org</a> shows is that the web interface categories map to the different ids or vice-versa.<br>


<br>(+) on the client side :<br>- direct access to what to download with little xml browsing required<br>- script is easy to implement<br>- no authentication needed<br>- load distributed over many servers around the globe<br>


<br>(-) on the client side :<br>- searching has to be done by the client script<br>- if users submit data, they&#39;ll have to way &lt; 1 hour to see it up online through the client script<br>- there needs do exist some file online or offline that tells which category has which sub-categories=id names. This is awkward to have all the subcategories on the same root in the feeds list though that&#39;s not a problem.<br>


- there&#39;s no nb of items per page limit compared to the REST api (10 items max / page and possibility to request which page to display by its number) so this makes the client potentially download a lot (ie. imagine there a lots of glass materials). Getting the N first items of a list would be ok (ie : close the http xml download right from the moment when know we have downloaded N elements), but as to the next N elements one would have to use http resume support.<br>


<br><b>as to option 2.</b><br>(+) on the client side :<br>- can get content/info without having for the script to browse through xml hyperlinks, just make SOAP calls.<br>- if we use a SOAP library  things are very easy<br>


I&#39;ve found something in the dive into python book with wsdl <a href="http://www.diveintopython.org/soap_web_services/google.html" target="_blank">http://www.diveintopython.org/soap_web_services/google.html</a> which makes method calling extremely easy if a wsdl file exists, one problem is that SOAPpy used there isn&#39;t in <br>


- one button click really corresponds to one web SOAP call.<br>- voting and searching implemented.<br>- sorting is not done by the client.<br><br>(-) on the client side :<br>- authentication needed<br>- as to the SOAP capabilities on Python&#39;s side : Python&#39;s standard distribution (and there&#39;s no soap library at all in
the python&#39;s standard distrib I think)... so I&#39;d have to include the
whole SOAPpy package inside Blender releases which would push them to
be &quot;unofficial&quot; because I doubt that such an inclusion would be
accepted. Or I&#39;d implement the SOAPing with xml.minidom and libhttp
myself. Maybe, the blender script could, not contain this package, and
on the first run oblige the user to click on a &quot;download SOAPpy package
now&quot; which would make the script download and install the package
inside Blender&#39;s .blender/scripts/ directory.<br>I should talk about that to the Blender developpers maybe. I think from at first thought that : it preferable not to increase the size of Blender builds too much; it would be nice that the script (some scripts are packaged with official Blender builds but they rarely - I think - depend on external libraries) could work right way one run, not requiring to download a soap library.<br>


- broadband internet connection is required<br><br><b>as to option 3.</b><br>(+)<br>- easy to implement. Coding the client could be very evident.<br>- no real need for libs not present in a standard python distribution.<br>


- one click equals one internet call<br>- not really a need for a higher speed connection compared to SOAP.<br>- sorting is not done by the client<br>- voting and search implement.<br><br>(-)<br>- authentication required<br>
<br>=== end of my reflexions ==<br>

<br>The requirement to authenticate for using a SOAP/REST interface is not a burdain to users to me. What makes me a little reluctant to it though is that login + password are sent in clear. Instead, why not send the user a generated image with &quot;garbled&quot;/morphed text and ask him to type the corresponding text ? Doing that kind of translation is maybe something that bots can&#39;t do and this could spare people from signing up.<br>
I think that having to sign up for uploading contents would be a good thing, so that what&#39;s posted is related to some user with with all his/her details at hand for visitors.<br><br><br>&quot;If someone sends 100 search requests a second my server is down.&quot; do you mean for just one person sending 100 requests ? Or do you mean, that if several people start flooding with searches at the same time, this will you bring your server down ?<br>


<br>How do you submit content ? on the ghns feed I can&#39;t find any upload url (just a nouploadurl attribute...), and for the REST api contents I can fetch I see no upload url attribute at all. I don&#39;t know as to the SOAP interface.<br>


Would that be compulsory to use the web interface form to upload things : <a href="http://www.kde-look.org/content/add.php" target="_blank">http://www.kde-look.org/content/add.php</a> ?<br><br>I&#39;m interested in the REST API more than in the SOAP one because of the external libraries requirement issue. So if I were to tell you to set something up I would request the platform to have that first API.<br>
However, please do not setup something for blender yet. I&#39;ve just written to the bf-committers (bf=blender foundation) list. I&#39;ll let you know about the outcome of the replies.<br>The mail I posted is here : <a href="http://lists.blender.org/pipermail/bf-committers/2008-April/020741.html">http://lists.blender.org/pipermail/bf-committers/2008-April/020741.html</a><br>
<br>Sincerely,<br>Jonathan-david Schroder<br><br>
<br><div class="gmail_quote">On Wed, Apr 9, 2008 at 4:59 PM, Frank Karlitschek &lt;<a href="mailto:karlitschek@kde.org" target="_blank">karlitschek@kde.org</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">


Hi Jonathan,<br>
<br>
sorry for the confusion.<br>
We are talking about three different interfaces here.<br>
<br>
1. GHNS v1.0<br>
I´m generating static xml files and distribute them, together with the download files over the kde mirror network. This is done every hour.<br>
The files are accessed from the KDE Application over the host <a href="http://download.kde.org" target="_blank">download.kde.org</a> which is doing roundrobin via DNS.<br>
<br>
You find the feeds here:<div><br>
<a href="http://www.kde-look.org/help/ghns.php" target="_blank">http://www.kde-look.org/help/ghns.php</a><br>
<br></div>
This is used by most of the KDE applications at the moment.<br>
The benefit of this solution is that the load is distributed over lots of high capacity servers all over the globe. Access to the content is possible without authentication because a deny of service attack is very difficult.<br>



<br>
This could be used for blender too. But I´m not sure if we are allowed to use the kde mirrors for blender content.<br>
<br>
2. GHNS v2.0<br>
The new Specification done my Josef. Also called DXS.<br>
It is using SOAP. It is quite powerful but also heavyweight on the server.<br>
The only serverside implementation I know is the one from Josef.<br>
I also plan to support the interface in the future but it is not implemented yet.<br>
<br>
<br>
<br>
3. openDesktop.org REST<br>
The REST interface done by me. You find the details here:<br>
<a href="http://api.opendesktop.org" target="_blank">http://api.opendesktop.org</a><br>
<br>
The interface is more powerfull than the GHNS v1.0 It is possible to browse all the content from the sites and supports voting. I will also implement searching in the near future.<br>
<br>
I can setup a new community website for blender in less than a week together with a REST api for you. I can also integrate this website into the openDesktop.org network so it is getting promotion and users fast.<br>
<br>
The problem is that this REST interface is vulnerable for deny of service attacks or script kiddies. If someone sends 100 search requests a second my server is down.<br>
Because of that access to this interface is only possible for authenticated users or from dedicated IPs.<br>
<br>
Google, Yahoo, Amazon and eBay are doing the same because of the same reason.<br>
<br>
<br>
So I´m not sure what to suggest.<br>
<br>
Interface 1 has the best performance. But it only supports downloading and no searching. And you need server infrastructure.<br>
<br>
Interface 2 hast the most features. But I´m not sure if Josefs Implementation is ready and if there is a community system. It also has the deny of service problem.<br>
<br>
Interface 3 is only usable from authenticated users. I´m not sure if this makes sense to require for blender users.<br>
<br>
<br>
What do you think?<br>
<br>
<br>
Best Regards<br><font color="#888888">
Frank</font><div><div></div><div><br>
<br>
<br>
<br>
<br>
On 09.04.2008, at 15:35, Jonathan-David SCHRODER wrote:<br>
</div></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div><div></div><div>
Hi again,<br>
please forgive me for my last message that was missing words here and there.<br>
Thank you for you answer Josef.<br>
Ok I&#39;ll try to show the Bf (blender foundation) that I&#39;m already tinkering with the scripts (this is what I&#39;ve started doing, for real )and that I&#39;m getting advice on this list.<br>
<br>
I have studied some xml pages fetched thanks to the api.<br>
Things look good. On this I have question, how is that possible to submit new files to the server through the api ? Submit doesn&#39;t belong the 3 functions list from <a href="http://api.kde-look.org" target="_blank">api.kde-look.org</a> .<br>



Also, what&#39;s the difference between the data fetched thanks to the api from : <a href="http://api.kde-look.org" target="_blank">api.kde-look.org</a> , and the data fetchable by browsing through xml pages, starting from the ones mentionned here : <a href="http://www.kde-look.org/help/ghns.php" target="_blank">http://www.kde-look.org/help/ghns.php</a>&nbsp;?<br>



I don&#39;t understand much how to find again the same categories listed on <a href="http://api.opendesktop.org/V1/CATEGORIES" target="_blank">http://api.opendesktop.org/V1/CATEGORIES</a>, and on <a href="http://www.kde-look.org/help/ghns.php" target="_blank">http://www.kde-look.org/help/ghns.php</a>&nbsp;.<br>



<br>
I&#39;ve had a look at : <a href="http://svn.ggzgamingzone.org/trac.cgi/browser/trunk/python/lib/sdlnewstuff.py?rev=head" target="_blank">http://svn.ggzgamingzone.org/trac.cgi/browser/trunk/python/lib/sdlnewstuff.py?rev=head</a>&nbsp;. It uses the <a href="http://www.kde-look.org/help/ghns.php" target="_blank">http://www.kde-look.org/help/ghns.php</a> interface with the providers.xml files. To me, this interface could also be called a REST interface somehow, because there&#39;s no SOAP, and it uses the download xml -then- go to one of the hyperlinks steps which resemble what I&#39;ve read about REST.<br>



I haven&#39;t been able to run the python script because my pygame install on linux is weird (doing apt-get install pygame does install pygame but does not setup the pythonpath to add pygame&#39;s folfers... looking on the web, this seems to be an old deb. package bug while I&#39;m using a much newer ubuntu distribution...). Changing my pyhonpath the way I could guess does make importing pygame work partly, but I still have problems finding some parts of the pygame library... Maybe I&#39;ll purge the sdlnewstuff script from any pygame related code and try to run it, though reading the code is enough to understand what this script does with the ghns interface.<br>



<br>
I&#39;d be ready to rewrite some python script using the REST interface, maybe complementing what I could see with sdlnewstuff and making a python only library to be used by any kind of software.<br>
<br>
Sincerely,<br>
Jonathan-david Schröder<br>
<br>
On Wed, Apr 9, 2008 at 11:38 AM, Josef Spillner &lt;<a href="mailto:spillner@kde.org" target="_blank">spillner@kde.org</a>&gt; wrote:<br>
Am Dienstag 08 April 2008 03:14:57 schrieb Jonathan-David SCHRODER:<br>
&gt; I&#39;ve &quot;met&quot; on #blendercoders a blender developper interested in my proposal<br>
&gt; (he had access to the SoC admin side for the blender foundation) because he<br>
&gt; worked using mysql for blender files data blocks.<br>
&gt; He wants to talk more about the proposal with me in a few days.<br>
<br>
You can tell him that you could easily get advice on GHNS-specifics on this<br>
list even if someone from Blender becomes a mentor.<br>
<br>
&gt; By then... I could have tried to use khotnewstuff, and maybe some shell<br>
&gt; scripts I&#39;ve seen on the repos to know that I can make the GHNS system work<br>
&gt; somehow and start discovering more about it.<br>
<br>
It will give a positive view if you already tinker with the scripts and<br>
servers prior to the application rating deadline.<br>
<br>
Josef<br>
<br>
P.S. You&#39;re always on CC during the whole mail thread. Are you subscribed to<br>
it now? We could drop the CC then.<br>
<br>
<br>
<br>
<br>
-- <br>
</div></div><div><a href="http://www.jaxtr.com/myselfhimself" target="_blank">http://www.jaxtr.com/myselfhimself</a> _______________________________________________<br>
ghns mailing list<br>
<a href="mailto:ghns@lists.freedesktop.org" target="_blank">ghns@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/ghns" target="_blank">http://lists.freedesktop.org/mailman/listinfo/ghns</a><br>
</div></blockquote><div><div></div><div>
<br>
--<br>
Frank Karlitschek<br>
<a href="mailto:karlitschek@kde.org" target="_blank">karlitschek@kde.org</a><br>
<br>
<br>
<br>
<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><a href="http://www.jaxtr.com/myselfhimself" target="_blank">http://www.jaxtr.com/myselfhimself</a>