Hi<br>sorry for spamming<br>I've discovered there's an xmlrpclib inside Python's standard library :<br><a href="http://docs.python.org/modindex.html">http://docs.python.org/modindex.html</a> => <a href="http://docs.python.org/lib/module-xmlrpclib.html">http://docs.python.org/lib/module-xmlrpclib.html</a><br>
well anyway, I'd be glad to use the REST API, unless the SOAP API has many more features.<br><br>I have a made a wiki site up for the project here : <a href="http://www.ece.fr/%7Eschroder/SoC2008/doku.php?id=blenderproject">http://www.ece.fr/~schroder/SoC2008/doku.php?id=blenderproject</a><br>
<br>Sincerely,<br>Jonathan<br><br>On Thu, Apr 10, 2008 at 1:20 AM, Jonathan-David SCHRODER <<a href="mailto:myselfhimself@free.fr">myselfhimself@free.fr</a>> wrote:<br>> Hi !<br>> <br>> Do you think that there could be more than 1 category level ?<br>
> The REST api seems to show that there's only one level, and so does<br>> the feed view with all the xml files.<br>> If you want I could try and digg into the code myself and see how I<br>> could implement that with you... Or maybe you'll hophop my friend sit<br>
> back, you've got other work to do.<br>> <br>> This is in some way, customizing work that I'd be supposed to do as<br>> part of my SoC. So please tell me, and I shall study and work on the<br>> code on SVN (where is the repository actually ?)<br>
> I'd need more than 1 level of category (that is to say 2 for now : )<br>> but this number may change).<br>> If I could customize something else, that would be the possibility to<br>> put search terms/regexps in the REST api.<br>
> I should see if I need to add search criteria.<br>> <br>> I think I'll setup some wiki page somewhere on my personal web site<br>> domain first with what I'd need for the web site.<br>> <br>> Sincerely,<br>
> Jonathan Schröder<br>> <br>> <br>> <br>> On Thu, Apr 10, 2008 at 12:31 AM, Jonathan-David SCHRODER<br>> <<a href="mailto:myselfhimself@free.fr">myselfhimself@free.fr</a>> wrote:<br>> > 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"<br>
> > == ... of my reflexion ===" boundaries) and then I pose some questions to<br>> > you and tell which api option I would prefer.<br>> ><br>> > === start of my reflexion ===<br>> > as to option 1. with autogenerated feeds located at php page.<br>
> > you say that is doesn't support searching, and a workaround for this would<br>> > be to create lots of ids. For example, I see on<br>> > <a href="http://www.kde-look.org/help/ghns.php">http://www.kde-look.org/help/ghns.php</a> the following variation of themes :<br>
> > soundthemes,mousethemes,kdmthemes,amarokthemes,plasmathemes,iconthemes.<br>> > What I would consider doing if ever I used this 1st option would be to have<br>> > 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<br>> > materials.<br>> > Because I do not want people in Blender to see all the different materials<br>
> > types from the beginning. User will want to download more kinds of data<br>> > block than just materials : models, scripts, compositing nodes, logic<br>> > bricks, armature setups, textures.<br>> > I think that in the end, we would need a lot of Ids which could make the<br>
> > feed page too long to download when running Blender's assets manager. Unless<br>> > we cache that page locally and refresh once a day on the Blender's plug in<br>> > launch.<br>> > There would not be a big problem from the web interface point of view to<br>
> > have as many ideas, as what <a href="http://kde-looks.org">kde-looks.org</a> shows is that the web interface<br>> > 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<br>> > through the client script<br>
> > - there needs do exist some file online or offline that tells which category<br>> > has which sub-categories=id names. This is awkward to have all the<br>> > subcategories on the same root in the feeds list though that's not a<br>
> > problem.<br>> > - there's no nb of items per page limit compared to the REST api (10 items<br>> > max / page and possibility to request which page to display by its number)<br>> > so this makes the client potentially download a lot (ie. imagine there a<br>
> > lots of glass materials). Getting the N first items of a list would be ok<br>> > (ie : close the http xml download right from the moment when know we have<br>> > downloaded N elements), but as to the next N elements one would have to use<br>
> > http resume support.<br>> ><br>> > as to option 2.<br>> > (+) on the client side :<br>> > - can get content/info without having for the script to browse through xml<br>> > 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<br>> > <a href="http://www.diveintopython.org/soap_web_services/google.html">http://www.diveintopython.org/soap_web_services/google.html</a> which makes<br>
> > method calling extremely easy if a wsdl file exists, one problem is that<br>> > 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<br>
> > distribution (and there's no soap library at all in the python's standard<br>> > distrib I think)... so I'd have to include the whole SOAPpy package inside<br>> > Blender releases which would push them to be "unofficial" because I doubt<br>
> > that such an inclusion would be accepted. Or I'd implement the SOAPing with<br>> > xml.minidom and libhttp myself. Maybe, the blender script could, not contain<br>> > this package, and on the first run oblige the user to click on a "download<br>
> > SOAPpy package now" which would make the script download and install the<br>> > package inside Blender's .blender/scripts/ directory.<br>> > I should talk about that to the Blender developpers maybe. I think from at<br>
> > first thought that : it preferable not to increase the size of Blender<br>> > builds too much; it would be nice that the script (some scripts are packaged<br>> > with official Blender builds but they rarely - I think - depend on external<br>
> > libraries) could work right way one run, not requiring to download a soap<br>> > library.<br>> > - broadband internet connection is required<br>> ><br>> > as to option 3.<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<br>> > burdain to users to me. What makes me a little reluctant to it though is<br>> > that login + password are sent in clear. Instead, why not send the user a<br>
> > generated image with "garbled"/morphed text and ask him to type the<br>> > corresponding text ? Doing that kind of translation is maybe something that<br>> > 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<br>> > thing, so that what's posted is related to some user with with all his/her<br>> > details at hand for visitors.<br>
> ><br>> ><br>> > "If someone sends 100 search requests a second my server is down." do you<br>> > mean for just one person sending 100 requests ? Or do you mean, that if<br>> > several people start flooding with searches at the same time, this will you<br>
> > bring your server down ?<br>> ><br>> > How do you submit content ? on the ghns feed I can't find any upload url<br>> > (just a nouploadurl attribute...), and for the REST api contents I can fetch<br>
> > 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 :<br>> > <a href="http://www.kde-look.org/content/add.php">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<br>> > external libraries requirement issue. So if I were to tell you to set<br>> > 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<br>> > to the bf-committers (bf=blender foundation) list. I'll let you know about<br>> > the outcome of the replies.<br>
> > The mail I posted is here :<br>> > <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>> ><br>> ><br>> > On Wed, Apr 9, 2008 at 4:59 PM, Frank Karlitschek <<a href="mailto:karlitschek@kde.org">karlitschek@kde.org</a>><br>
> > wrote:<br>> > > 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<br>> > download files over the kde mirror network. This is done every hour.<br>> > > The files are accessed from the KDE Application over the host<br>
> > <a href="http://download.kde.org">download.kde.org</a> which is doing roundrobin via DNS.<br>> > ><br>> > > You find the feeds here:<br>> > ><br>> > > <a href="http://www.kde-look.org/help/ghns.php">http://www.kde-look.org/help/ghns.php</a><br>
> > ><br>> > > 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<br>> > high capacity servers all over the globe. Access to the content is possible<br>
> > 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<br>> > 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<br>> > 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">http://api.opendesktop.org</a><br>> > ><br>> > > The interface is more powerfull than the GHNS v1.0 It is possible to<br>> > browse all the content from the sites and supports voting. I will also<br>
> > implement searching in the near future.<br>> > ><br>> > > I can setup a new community website for blender in less than a week<br>> > together with a REST api for you. I can also integrate this website into the<br>
> > 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<br>> > attacks or script kiddies. If someone sends 100 search requests a second my<br>
> > server is down.<br>> > > Because of that access to this interface is only possible for<br>> > authenticated users or from dedicated IPs.<br>> > ><br>> > > Google, Yahoo, Amazon and eBay are doing the same because of the same<br>
> > 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<br>
> > no searching. And you need server infrastructure.<br>> > ><br>> > > Interface 2 hast the most features. But I´m not sure if Josefs<br>> > Implementation is ready and if there is a community system. It also has the<br>
> > deny of service problem.<br>> > ><br>> > > Interface 3 is only usable from authenticated users. I´m not sure if this<br>> > makes sense to require for blender users.<br>> > ><br>
> > ><br>> > > What do you think?<br>> > ><br>> > ><br>> > > Best Regards<br>> > > Frank<br>> > ><br>> > ><br>> > ><br>> > ><br>
> > ><br>> > ><br>> > ><br>> > > On 09.04.2008, at 15:35, Jonathan-David SCHRODER wrote:<br>> > ><br>> > > ><br>> > > ><br>> > > ><br>
> > > > Hi again,<br>> > > > please forgive me for my last message that was missing words here and<br>> > there.<br>> > > > Thank you for you answer Josef.<br>> > > > Ok I'll try to show the Bf (blender foundation) that I'm already<br>
> > tinkering with the scripts (this is what I've started doing, for real )and<br>> > 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<br>> > submit new files to the server through the api ? Submit doesn't belong the 3<br>> > functions list from <a href="http://api.kde-look.org">api.kde-look.org</a> .<br>
> > > > Also, what's the difference between the data fetched thanks to the api<br>> > from : <a href="http://api.kde-look.org">api.kde-look.org</a> , and the data fetchable by browsing through xml<br>
> > pages, starting from the ones mentionned here :<br>> > <a href="http://www.kde-look.org/help/ghns.php">http://www.kde-look.org/help/ghns.php</a> ?<br>> > > > I don't understand much how to find again the same categories listed on<br>
> > <a href="http://api.opendesktop.org/V1/CATEGORIES">http://api.opendesktop.org/V1/CATEGORIES</a>, and on<br>> > <a href="http://www.kde-look.org/help/ghns.php">http://www.kde-look.org/help/ghns.php</a> .<br>
> > > ><br>> > > > I've had a look at :<br>> > <a href="http://svn.ggzgamingzone.org/trac.cgi/browser/trunk/python/lib/sdlnewstuff.py?rev=head">http://svn.ggzgamingzone.org/trac.cgi/browser/trunk/python/lib/sdlnewstuff.py?rev=head</a><br>
> > . It uses the <a href="http://www.kde-look.org/help/ghns.php">http://www.kde-look.org/help/ghns.php</a> interface with the<br>> > providers.xml files. To me, this interface could also be called a REST<br>
> > interface somehow, because there's no SOAP, and it uses the download xml<br>> > -then- go to one of the hyperlinks steps which resemble what I've read about<br>> > REST.<br>> > > > I haven't been able to run the python script because my pygame install<br>
> > on linux is weird (doing apt-get install pygame does install pygame but does<br>> > not setup the pythonpath to add pygame's folfers... looking on the web, this<br>> > seems to be an old deb. package bug while I'm using a much newer ubuntu<br>
> > distribution...). Changing my pyhonpath the way I could guess does make<br>> > importing pygame work partly, but I still have problems finding some parts<br>> > of the pygame library... Maybe I'll purge the sdlnewstuff script from any<br>
> > pygame related code and try to run it, though reading the code is enough to<br>> > understand what this script does with the ghns interface.<br>> > > ><br>> > > > I'd be ready to rewrite some python script using the REST interface,<br>
> > maybe complementing what I could see with sdlnewstuff and making a python<br>> > 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">spillner@kde.org</a>><br>> > 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<br>> > proposal<br>> > > > > (he had access to the SoC admin side for the blender foundation)<br>
> > 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<br>> > 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<br>
> > shell<br>> > > > > scripts I've seen on the repos to know that I can make the GHNS system<br>> > 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<br>> > subscribed to<br>> > > > it now? We could drop the CC then.<br>> > > ><br>
> > > ><br>> > > ><br>> > > ><br>> > > > --<br>> > > ><br>> > > > <a href="http://www.jaxtr.com/myselfhimself">http://www.jaxtr.com/myselfhimself</a><br>
> > _______________________________________________<br>> > > > ghns mailing list<br>> > > > <a href="mailto:ghns@lists.freedesktop.org">ghns@lists.freedesktop.org</a><br>> > > > <a href="http://lists.freedesktop.org/mailman/listinfo/ghns">http://lists.freedesktop.org/mailman/listinfo/ghns</a><br>
> > > ><br>> > ><br>> > ><br>> > ><br>> > ><br>> > > --<br>> > > Frank Karlitschek<br>> > > <a href="mailto:karlitschek@kde.org">karlitschek@kde.org</a><br>
> > ><br>> > ><br>> > ><br>> > ><br>> > ><br>> ><br>> ><br>> ><br>> > --<br>> > <a href="http://www.jaxtr.com/myselfhimself">http://www.jaxtr.com/myselfhimself</a><br>
> <br>> <br>> <br>> --<br>> <a href="http://www.jaxtr.com/myselfhimself">http://www.jaxtr.com/myselfhimself</a><br>> <br><br><br><br>-- <br><a href="http://www.jaxtr.com/myselfhimself">http://www.jaxtr.com/myselfhimself</a><br>