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" == ... of my reflexion ===" 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'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'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's assets manager. Unless we cache that page locally and refresh once a day on the Blender'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'll have to way < 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's not a problem.<br>
- there'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'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'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's side : Python's standard distribution (and there's no soap library at all in
the python's standard distrib I think)... so I'd have to include the
whole SOAPpy package inside Blender releases which would push them to
be "unofficial" because I doubt that such an inclusion would be
accepted. Or I'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 "download SOAPpy package
now" which would make the script download and install the package
inside Blender'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 "garbled"/morphed text and ask him to type the corresponding text ? Doing that kind of translation is maybe something that bots can'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's posted is related to some user with with all his/her details at hand for visitors.<br><br><br>"If someone sends 100 search requests a second my server is down." 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'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'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'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've just written to the bf-committers (bf=blender foundation) list. I'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 <<a href="mailto:karlitschek@kde.org" target="_blank">karlitschek@kde.org</a>> 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'll try to show the Bf (blender foundation) that I'm already tinkering with the scripts (this is what I've started doing, for real )and that I'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't belong the 3 functions list from <a href="http://api.kde-look.org" target="_blank">api.kde-look.org</a> .<br>
Also, what'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> ?<br>
I don'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> .<br>
<br>
I'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> . 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's no SOAP, and it uses the download xml -then- go to one of the hyperlinks steps which resemble what I've read about REST.<br>
I haven'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's folfers... looking on the web, this seems to be an old deb. package bug while I'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'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'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 <<a href="mailto:spillner@kde.org" target="_blank">spillner@kde.org</a>> wrote:<br>
Am Dienstag 08 April 2008 03:14:57 schrieb Jonathan-David SCHRODER:<br>
> I've "met" on #blendercoders a blender developper interested in my proposal<br>
> (he had access to the SoC admin side for the blender foundation) because he<br>
> worked using mysql for blender files data blocks.<br>
> 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>
> By then... I could have tried to use khotnewstuff, and maybe some shell<br>
> scripts I've seen on the repos to know that I can make the GHNS system work<br>
> 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'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>