Re: [Web-SIG] Announcing bobo
On Wed, Oct 28, 2009 at 9:12 AM, Etienne Robillard robillard.etie...@gmail.com wrote: Hey Jim, Thanks for that. I'm sorry that I've been rude with you and realize my mistake. I didn't know you were engaged with Zope from a long time. Yet I'm still mostly a Python rookie after all... I suggest not being rude no matter who you're talking to. :) The problem of wording in Python web frameworks is not quite related to bobo or anything else, I think... It's just that I'm often tired of seeing so much competition in similar Python projects, when the goal (I suppose) should be to share along, and learn stuff... I'll dig further down on Bobo. Thanks for announcing this. Please accept my apologies, Sure. Thanks. Jim -- Jim Fulton ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
On Jun 21, 2009, at 7:06 PM, Aaron Watters wrote: [whoops: graham, I meant to 'reply all', sorry for repeat] --- On Sat, 6/20/09, Graham Dumpleton graham.dumple...@gmail.com wrote Personally I believe 'bobo' would be a good alternative for the people who currently get drawn to the simplicity of 'publisher' It's not clear to me whether bobo has the just drop a file or directory in the parent directory and it works property like PHP, modpy/publisher, vanilla CGI, and WHIFF do. Does it, Jim? No more than any other WSGI application does, except that it is pretty light weight, so it is practical to run it using CGI. As Graham pointed out, he's created a cool extension to mod_wsgi that makes it easy to drop in bobo source files. I designed bobo so that source files can be pretty self contained (e.g. not requiring external configuration) which probably helps make this story work well. Jim -- Jim Fulton Zope Corporation ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
--- On Sun, 6/21/09, Graham Dumpleton graham.dumple...@gmail.com wrote: In other words, bobo doesn't need to support that sort of mechanism directly as Apache/mod_wsgi makes it a reasonably trivial thing to do. Nice! Ideally the same mechanism should work for other WSGI implementations, and the same mechanism should also work for dropping (fragments of) applications into another bobo application. For example you can drop in middleware support for amCharts flash charts into any whiff application by adding an import statement to an __init__.py file, as described here http://aaron.oirt.rutgers.edu/myapp/amcharts/doc -- Aaron Watters === % if i had a ( for every $ bush spent, how many ('s would i have? too many ('s. ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
On Jun 18, 2009, at 8:30 AM, Etienne Robillard wrote: It is suggested that most web frameworks authors aims at a very (wide?) audience and bet that most peoples are bozos, clowns, or idiots. I think this rationale might work in some cases, because users of thoses frameworks indeed might not have all those hard-core technical knowledges about, say, URL routing, WSGI or even schema migration. I won't speak for other frameworks, but bobo's target audience is idiots in the same sense that the popular idiot's guides and dummies books are aimed at idiots and dummies. Of course, these books and bobo aren't *really* aimed at idiots or dummies (or bozos or clowns -- well maybe clowns). They're aimed at people who don't really want hard-core knowledge. They want to learn something quickly so that they can get things done. In my experience, many people writing web applications want to focus on their applications. They aren't really interested in nitty-gritty plumbing details, they just want to get their application working well. For many people, web development isn't their full time job. It's one of many things they do and they don't want to have a lot to remember or re-learn. Many full-time web developers have more interesting things to focus on that publishing mechanics. I know I do. Jim -- Jim Fulton Zope Corporation ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
On Jun 19, 2009, at 11:27 AM, Chris Withers wrote: Jim Fulton wrote: I'm working on another project, bozo, to facilitate using bobo resources in Zope and use Zope components with bobo applications. Cool, hopefully bozo can be used for non-Zope applications too :-) bozo.component will be. It will provide a type-based resource- dispatch mechanism for bobo applications using zope.component. Of course, zope.component can be used for non-Zope-based applications. bozo.reuse is specifically geared to zope/bobo interoperability. Discussion on that should happen over on the zope-dev list. and/or in a non-decorator fashion? Bobo provides a mechanism to express routes separately from your Python code. Oh, I missed this... where is this documented? http://bobo.digicool.com/more.html#configured-routes Jim -- Jim Fulton Zope Corporation ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
2009/6/20 Jim Fulton j...@zope.com: On Jun 18, 2009, at 8:30 AM, Etienne Robillard wrote: It is suggested that most web frameworks authors aims at a very (wide?) audience and bet that most peoples are bozos, clowns, or idiots. I think this rationale might work in some cases, because users of thoses frameworks indeed might not have all those hard-core technical knowledges about, say, URL routing, WSGI or even schema migration. I won't speak for other frameworks, but bobo's target audience is idiots in the same sense that the popular idiot's guides and dummies books are aimed at idiots and dummies. Of course, these books and bobo aren't *really* aimed at idiots or dummies (or bozos or clowns -- well maybe clowns). They're aimed at people who don't really want hard-core knowledge. They want to learn something quickly so that they can get things done. In my experience, many people writing web applications want to focus on their applications. They aren't really interested in nitty-gritty plumbing details, they just want to get their application working well. For many people, web development isn't their full time job. It's one of many things they do and they don't want to have a lot to remember or re-learn. Many full-time web developers have more interesting things to focus on that publishing mechanics. I know I do. Personally I believe 'bobo' would be a good alternative for the people who currently get drawn to the simplicity of 'publisher' in mod_python, especially if things are setup within Apache such that all they need to do is drop the bobo script file into their existing Apache document directories like they can now with 'publisher'. This way all the high level URL dispatch to specific bobo scripts is done for them and they don't have to care about it. With the provision of the request object, they can just get on with coding their application, adding any custom URL dispatching within the script file as needs be. Work in a way of automatically handling application process reloading when they make changes, and you start to approach the ease of doing things that PHP developers are so used to, and for which they cannot work out why Python is so hard in comparison. Graham ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
Hey, On Thu, Jun 18, 2009 at 3:55 AM, Sergey Schetininmal...@gmail.com wrote: [snip] In particular you should be able to assign a component to any URL in the same sense that you can give an object any name. You should also be able to build relocatable URL trees which can be mounted anywhere in the calling application suite. Do I catch your meaning correctly? Spot on. This is what object traversal (as in Zope) tends to allow. While each individual URL tree (i.e. object structure) might have various expectations concerning relative URLs, they can be combined together by putting the right types of objects together. This allows the composition of larger web apps out of smaller components without there having to be a global map of how URLs map at all. Regards, Martijn ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
(Note that this discussion is getting rather dense. I suggest reading my reply all the way through befor responding to individual points. :) On Jun 17, 2009, at 6:42 PM, Sergey Schetinin wrote: On 2009-06-17, Jim Fulton j...@zope.com wrote: On Jun 16, 2009, at 11:02 AM, Sergey Schetinin wrote: ... indeed there are quite a few frameworks / components that do this thing and I kind of don't get why people want to write their apps that way. I wonder if Jim or anyone else could explain the rationale behind all these URL routing libraries. Nobody minds calling functions from other functions -- that's basics of programming, but for some reason URL dispatching is seen as something different. Why? This is not a criticism, I just really would like to understand this. Fair enough. I'm not sure I understand your question. You need some way of mapping URLs onto Python objects that handle them. You can do this on a case by case basis by inspecting a URL and doing some sort of ad hoc dispatch in your application. Is that what you mean by calling functions from other functions? I've found it useful to have a standard mechanism for this that you can use over and over without reinventing it each time. I guess didn't state my question properly, sorry. Let me explain what I meant by calling functions analogy. My point is that when we define a piece of functionality (as a function, class or whatever) we don't say where to use it. I mean, we may define functions as take data from a this argument, process and return and it's up to the caller to pass that data into the function, function doesn't say where that should come from or where in the rest of code should its body be injected or anything like that. So function is a definition of functionality and it is being called from somewhere else, the called should know as little as possible about the caller and its place relative to other calls its caller makes. At least that seems to be the advice for good software design. But software still lives in a namespace. You usually assign a function a name in a module or package. It often depends on other functionality being available under specific names. In web applications, we often need to know where other components are in the URL space. OTOH, often a function doesn't depend on it's name and you feel that a web application shouldn't care about it's URL. I get that. :) When considering webapps and what urls they should handle it seems like the same should apply -- webapps define contained blocks of functionality and the task of placing them somewhere in URL-space belongs to the caller which in this case would be a configuration or serving script or, most often, a parent application. OK, so you expect there to be a URL mapping, typically accomplished via some configuration mechanism outside the code. Most routing systems either require or allow this. Sure, this requires inspecting the URL, or as you said, ad-hoc dispatching. I think that misrepresents this approach because all it boils down to is a series of if's, maybe a dictionary lookup and possibly regexp matching is some cases (I personally never had to use that for URL dispatch though). If we were to look at a similar approach in a different context, I don't think it would be fair to call a series of if/elifs ad-hoc logic, so it's the same thing here. I wasn't trying to represent what you said. I was just guessing at what you said. So you don't mind routing systems that are configured through routing tables outside the code. (?) But let's go back to bobo, I can see how URL paths derived from file and function names are nice and make sense, but I'm not as thrilled with declaring the app path in a decorator. When looking at it from the perspective of caller defines when and how the subroutine is called I see that the entire (and very useful) level of abstraction is gone -- the application path is defined right where the application itself is defined. It's almost like declaring a piece of code and saying just inject this into file X at line Y -- not pretty. Again, I get that you want to separate URL from the code, but I don't agree with your analogy. This may not matter. Something to note is that the paths used in bobo are often not absolute. If you use subroutes, http://bobo.digicool.com/index.html#subroutes , then the paths used will be relative to a position in a URL tree. In the referenced section, the paths in the Document and Folder resources are relative to the URLs used to access a document or folder. An innovation in bobo, I think, is that it combines routes and traversal (URL Dispatch and traversal in http://docs.repoze.org/bfg/narr/urlmapping.html#differences-between-traversal-and-url-dispatch) However, I have to admit, that if taken as an iterative improvement over file/function name it looks very reasonable. I'm not sure what you're referring to here. In the original
Re: [Web-SIG] Announcing bobo
On 2009-06-18, Jim Fulton j...@zope.com wrote: (Note that this discussion is getting rather dense. I suggest reading my reply all the way through befor responding to individual points. :) On Jun 17, 2009, at 6:42 PM, Sergey Schetinin wrote: On 2009-06-17, Jim Fulton j...@zope.com wrote: On Jun 16, 2009, at 11:02 AM, Sergey Schetinin wrote: ... indeed there are quite a few frameworks / components that do this thing and I kind of don't get why people want to write their apps that way. I wonder if Jim or anyone else could explain the rationale behind all these URL routing libraries. Nobody minds calling functions from other functions -- that's basics of programming, but for some reason URL dispatching is seen as something different. Why? This is not a criticism, I just really would like to understand this. Fair enough. I'm not sure I understand your question. You need some way of mapping URLs onto Python objects that handle them. You can do this on a case by case basis by inspecting a URL and doing some sort of ad hoc dispatch in your application. Is that what you mean by calling functions from other functions? I've found it useful to have a standard mechanism for this that you can use over and over without reinventing it each time. I guess didn't state my question properly, sorry. Let me explain what I meant by calling functions analogy. My point is that when we define a piece of functionality (as a function, class or whatever) we don't say where to use it. I mean, we may define functions as take data from a this argument, process and return and it's up to the caller to pass that data into the function, function doesn't say where that should come from or where in the rest of code should its body be injected or anything like that. So function is a definition of functionality and it is being called from somewhere else, the called should know as little as possible about the caller and its place relative to other calls its caller makes. At least that seems to be the advice for good software design. But software still lives in a namespace. You usually assign a function a name in a module or package. It often depends on other functionality being available under specific names. In web applications, we often need to know where other components are in the URL space. OTOH, often a function doesn't depend on it's name and you feel that a web application shouldn't care about it's URL. I get that. :) Well, the app needs to know where its children are located and it controls that. If the app needs to know its siblings' paths I think that should be parametrized. That way, the parent can set up its components that they know where to find each other but there's still flexibility to it. Conventional paths work too, but there's plenty of code reuse lost as a result. Imagine a web forum app. The top level app is the topic list, there are discussion thread apps that it exposes at some paths, those apps would want to know the URL of the topic list so that they can link to it. They may assume that it's one level up or they might actually have a way to define where they are. In the latter case when the forum app created its children, it would have let the children know that it is their parent. Now consider someone writing a blog app for example, there are apps that represent specific blog entries and it would be nice to be able to reuse the forum thread component and expose it at a subpath, for example as /blog/entry-name/discussion. If we were not just using conventional paths in the implementation of that thread app we could just tell it that it should refer to its parent as a blog entry X or something. The point is that decoupling is a good enough thing to be worth at least few extra lines of code. If the forum app was using some routing library, things would be much more complicated -- it's no longer a matter of a few lines of code but a major PITA. When considering webapps and what urls they should handle it seems like the same should apply -- webapps define contained blocks of functionality and the task of placing them somewhere in URL-space belongs to the caller which in this case would be a configuration or serving script or, most often, a parent application. OK, so you expect there to be a URL mapping, typically accomplished via some configuration mechanism outside the code. Most routing systems either require or allow this. Sure, this requires inspecting the URL, or as you said, ad-hoc dispatching. I think that misrepresents this approach because all it boils down to is a series of if's, maybe a dictionary lookup and possibly regexp matching is some cases (I personally never had to use that for URL dispatch though). If we were to look at a similar approach in a different context, I don't think it would be fair to call a series of if/elifs
Re: [Web-SIG] Announcing bobo
On 2009-06-19, P.J. Eby p...@telecommunity.com wrote: At 02:46 AM 6/19/2009 +0300, Sergey Schetinin wrote: but wouldn't it be nice if we could finally just do things like from somebody_else.forum import ForumApp urlmap['/forum'] = ForumApp(db_config=...) The Folder example in the bobo docs does basically that, actually. I think perhaps you've misunderstood what Bobo does; it not only provides a framework for fixed mappings, it also provides the basis for doing flexible mappings. In fact, that's what subroute parameters are for. So you could implement your urlmap above more or less like this: @bobo.scan_class class UrlMap(dict): @bobo.subroute('/:name') def subitem(self, name): try: return self[name] except KeyError: ... Oh wait, I meant urlmap to be from paste.urlmap import URLMap urlmap = URLMap() ... Should have written that in the first place, sorry. Although you'd probably need a __setitem__ that split on '/' and created sub-UrlMap instances if they don't already exist, but you get the idea I hope. Bobo's basic design, IOW, allows you to make pretty much any other design you like, but is very simple for relatively straightforward subtrees. Also, AFAICT, *all* bobo paths are relative paths treating the enclosing module or instance as a mount point, and there is nothing stopping you from mounting such objects at whatever locations you like. I think they are, but that's not separate enough from implementation for me :) The problem is that if one were to actually separate this mapping completely there's suddenly nothing to the library anymore :) (I'm exaggerating, but it's not that far from truth). What bobo lacks (that would be nice) is a way to figure out what URL to address a specified object by, since the very flexibility that allows objects to have more than one name, also means that there is no obvious way to find what name to use for an object. -- Best Regards, Sergey Schetinin http://s3bk.com/ -- S3 Backup http://word-to-html.com/ -- Word to HTML Converter ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
On 2009-06-19, P.J. Eby p...@telecommunity.com wrote: So you could implement your urlmap above more or less like this: @bobo.scan_class class UrlMap(dict): @bobo.subroute('/:name') def subitem(self, name): try: return self[name] except KeyError: ... Although you'd probably need a __setitem__ that split on '/' and created sub-UrlMap instances if they don't already exist, but you get the idea I hope. Also, I actually have my version of URLMap (with dispatching on host and protocol removed and with indexing instead of prefix scan): http://code.google.com/p/pasteob/source/browse/trunk/pasteob/__init__.py#170 PathMap.__getitem__ method can be ignored as it's used for inspection only, not when actually dispatching. ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
On 16-06-2009, Etienne Robillard wrote: Pfft, I bet this thread would have never happened without my initial intervention. Likewise, I think you're just using this thread for your own interests, disregarding my own arguments on why web frameworks are so hard to cope with. If you want to start a thread for Bobo, please switch mailing-list or create a new thread, as all I wanted was to tell Jim my disappointement regarding Bobo, and I still think its not very revolutionary. Imho you just describe your mistake ! You should start an other thread to discuss about the number of web framework instead of focus specialy on bobo. In fact, web framework like bobo is an answer to this problem (the number of framework). Like you said there is nothing revolutionary, it use other components (paste and webob), it means that we begin to stop to reinvent the wheel and search for the concensus on the smaller efficient framework. And this is really fine ! -- William Dodé - http://flibuste.net Informaticien Indépendant ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
+1 Bobo. I like stuff Jim writes. -- Cheers, Noah ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
On Jun 16, 2009, at 12:39 PM, Martijn Faassen wrote: ... He said it the goal is for it to be simple, he didn't say other people's works are complicated. Yup, however I can see how You don't have to be a genius could be construed as implying that you do have to be a genius to use other frameworks. It was intended to be a play on the name bobo, which can be translated as idiot in Spanish. I absolutely don't want to bad-mouth other frameworks. I've removed this unnecessary sentence from the PyPI page and from the packages long description in subversion. Jim -- Jim Fulton Zope Corporation ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
Hey Jim, Jim Fulton wrote: Bobo is a light-weight framework for creating WSGI web applications. Do you know if there are plans/possibilities to make the routing part of Bobo available for other frameworks and/or in a non-decorator fashion? cheers, Chris -- Simplistix - Content Management, Zope Python Consulting - http://www.simplistix.co.uk ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
On Jun 17, 2009, at 5:12 AM, Chris Withers wrote: Hey Jim, Jim Fulton wrote: Bobo is a light-weight framework for creating WSGI web applications. Do you know if there are plans/possibilities to make the routing part of Bobo available for other frameworks I'm working on another project, bozo, to facilitate using bobo resources in Zope and use Zope components with bobo applications. and/or in a non-decorator fashion? Bobo provides a mechanism to express routes separately from your Python code. Of course, Pylons also provides a route scheme that doesn't use decorators. repose.bfg integrates Pylons routes with other WSGI and Zope frameworks. Jim -- Jim Fulton Zope Corporation ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
Re Jim's summary of URL routing ...I hope this helps ... It helped me. Interesting summary. Thanks. I'm all for making things as simple and explicit as possible (at least as an optional or default behavior) and it looks like Bobo is much better than many other approaches in supporting simple and explicit URL routing. Thanks again, Jim. -- Aaron Watters http://aaron.oirt.rutgers.edu/myapp/docs/W1500.whyIsWhiffCool#Header6 http://aaron.oirt.rutgers.edu/myapp/amcharts/doc === Everything should be as simple as possible. But not simpler. -- Einstein ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
On 2009-06-18, Aaron Watters arw1...@yahoo.com wrote: --- On Wed, 6/17/09, Sergey Schetinin mal...@gmail.com wrote: When considering webapps and what urls they should handle it seems like the same should apply -- webapps define contained blocks of functionality and the task of placing them somewhere in URL-space belongs to the caller which in this case would be a configuration or serving script or, most often, a parent application. So you seem to be suggesting that a web component should not be aware of its URL in the same sense that an object is not aware of its variable name in the scope of the application that is using the object. Is that right? In particular you should be able to assign a component to any URL in the same sense that you can give an object any name. You should also be able to build relocatable URL trees which can be mounted anywhere in the calling application suite. Do I catch your meaning correctly? Spot on. It's not clear to me whether Bobo allows or disallows this (I think whiff, and standard cgi, for two examples, support this sort of url handling). Generally, I think allowing it is not enough, I'd prefer it to be *expected*, not just supported. Certainly if one wants to write their own apps this way there are plenty ways to do that, I'm just a bit sad that the default solution in Python webdev seems to be bring in inflexible stuff you don't need (not a stab at anything in particular, just something that seems to be the consensus ATM). I think one of the reasons for that is that you can't have a big website and screencasts to woo the newcomers and good docs and whatnot about writing a series of ifs, can you? Unlike the frameworkey stuff. I'd go to the Series-Of-Ifs-CON if there was one, though :) -- Best Regards, Sergey Schetinin http://s3bk.com/ -- S3 Backup http://word-to-html.com/ -- Word to HTML Converter ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
On 2009-06-16, Etienne Robillard robillard.etie...@gmail.com wrote: Nothing very new here. At least next time try to be a little more creative, otherwise this is getting slightly boring and repetitive... I think that's a bit rough, but indeed there are quite a few frameworks / components that do this thing and I kind of don't get why people want to write their apps that way. I wonder if Jim or anyone else could explain the rationale behind all these URL routing libraries. Nobody minds calling functions from other functions -- that's basics of programming, but for some reason URL dispatching is seen as something different. Why? This is not a criticism, I just really would like to understand this. -Sergey ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
At 05:19 PM 6/16/2009 +0200, Martijn Faassen wrote: Hey, On Tue, Jun 16, 2009 at 4:51 PM, Etienne Robillardrobillard.etie...@gmail.com wrote: Nothing very new here. At least next time try to be a little more creative, otherwise this is getting slightly boring and repetitive... It's a bit rich to call Jim Fulton uncreative concerning web development. I suggest you delve into the history of Python web development for a bit. Of course back in '97 there was more to invent than there is today. Surely Etienne is joking, since anybody who knows Python web development should know that Bobo was actually the first Python web framework ever developed, 12 years ago, and that it invented quite a lot of the things found in Python web frameworks today, not to mention being the forerunner of all things Zope. It's rather nice to see it back, reincarnated on today's egg/WSGI infrastructure. The original Bobo was what convinced me to become a Python programmer 12 years ago. (...after I realized that a Bobo-equivalent framework could not be implemented in Perl without far greater wizardry than I was capable of managing, while in Python it was nearly trivial to do so. I left Perl and never looked back.) ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
Martin, I don't care about '97, pretty much. I think that if this Jim guy has lots of experience then at least he could not pretend that other people works are made by/for geniuses, which is probably untrue anyway. There's other ways to advertise a open source project. One method is to discriminate other projects, thus making it's own work appears better in some ways or another. Of courses this has nothing to do in being a genius.. You don't have to be a genius to copy-and-paste things. regards, Etienne Martijn Faassen wrote: Hey, On Tue, Jun 16, 2009 at 4:51 PM, Etienne Robillardrobillard.etie...@gmail.com wrote: Nothing very new here. At least next time try to be a little more creative, otherwise this is getting slightly boring and repetitive... It's a bit rich to call Jim Fulton uncreative concerning web development. I suggest you delve into the history of Python web development for a bit. Of course back in '97 there was more to invent than there is today. Regards, Martijn -- Etienne Robillard robillard.etie...@gmail.com Green Tea Hackers Club http://gthc.org/ Blog: http://gthc.org/blog/ PGP Fingerprint: AED6 B33B B41D 5F4F A92A 2B71 874C FB27 F3A9 BDCC ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
Nobody minds calling functions from other functions -- that's basics of programming, but for some reason URL dispatching is seen as something different. Why? I don't know, but every time I see a strange data structure with regular expressions in it that is supposed to define my web application URL structure, my skin crawls. I think the simplicity of FILE_PATH==URL is one of the main reasons for the popularity of PHP -- other than that I can't think of any excuse for PHP. If python had a framework that had a simple and straightforward organization 5 to 10 years ago I don't think either PHP or Ruby/Rails would have ever evolved. BTW, this was one of the primary reasons I created WHIFF -- I wanted a structure where I just dropped files into a directory and they were automatically treated as applications or middlewares with an URL derived from the file path with associated services which could be combined in a natural fashion... There wasn't anything like that available, so I had to create it. -- Aaron Watters === http://aaron.oirt.rutgers.edu/myapp/amcharts/doc http://aaron.oirt.rutgers.edu/myapp/docs/W1500.whyIsWhiffCool less is more. ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
Hey, On Tue, Jun 16, 2009 at 6:15 PM, Etienne Robillardrobillard.etie...@gmail.com wrote: I don't care about '97, pretty much. Those who do not learn from history are destined to repeat it. :) I think that if this Jim guy has lots of experience then at least he could not pretend that other people works are made by/for geniuses, which is probably untrue anyway. There's other ways to advertise a open source project I think you misread him. He said it the goal is for it to be simple, he didn't say other people's works are complicated. Besides; I think Jim would be the first to admit that some of his other works are actually a bit harder to understand for other people. Zope 2 and Zope 3, which Jim both designed, are considered by many to be more than a little bit intimidating. One method is to discriminate other projects, thus making it's own work appears better in some ways or another. Of courses this has nothing to do in being a genius.. You don't have to be a genius to copy-and-paste things. You're reading things that Jim didn't write anywhere as far as I know. He doesn't compare Bobo with anything else. He just states what the goal is. What he does say is that he built Bobo on other people's work, giving it credit. Regards, Martijn ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
On Tue, Jun 16, 2009 at 9:15 AM, Etienne Robillardrobillard.etie...@gmail.com wrote: Martin, I don't care about '97, pretty much. I think that if this Jim guy has lots of experience then at least he could not pretend that other people works are made by/for geniuses, which is probably untrue anyway. How do you know that Jim believes this? I don't see anything in his initial announcement (or in skimming the documentation) that implies you should choose Bobo over any other framework. There's other ways to advertise a open source project. One method is to discriminate other projects, thus making it's own work appears better in some ways or another. Of courses this has nothing to do in being a genius.. You don't have to be a genius to copy-and-paste things. Again, this seems to be a stretch. Jim simply sent a message letting people know about Bobo. I for one appreciate that, as it's useful for me to have different tools in my toolkit for approaching different problems. Bobo may share features (or non-features) with other frameworks (web.py comes to mind) but that doesn't mean it's copy and paste. This feels like an ad hominem argument which is both surprising and unproductive. Nathan regards, Etienne Martijn Faassen wrote: Hey, On Tue, Jun 16, 2009 at 4:51 PM, Etienne Robillardrobillard.etie...@gmail.com wrote: Nothing very new here. At least next time try to be a little more creative, otherwise this is getting slightly boring and repetitive... It's a bit rich to call Jim Fulton uncreative concerning web development. I suggest you delve into the history of Python web development for a bit. Of course back in '97 there was more to invent than there is today. Regards, Martijn -- Etienne Robillard robillard.etie...@gmail.com Green Tea Hackers Club http://gthc.org/ Blog: http://gthc.org/blog/ PGP Fingerprint: AED6 B33B B41D 5F4F A92A 2B71 874C FB27 F3A9 BDCC ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/nathan%40yergler.net ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
Jim Fulton wrote: Bobo is a light-weight framework for creating WSGI web applications. It's goal is to be easy to use and remember. You don't have to be a genius. It addresses 2 problems: - Mapping URLs to objects - Calling objects to generate HTTP responses Bobo doesn't have a templateing language, a database integration layer, or a number of other features that can be provided by WSGI middle-ware or application-specific libraries. Bobo builds on other frameworks, most notably WSGI and WebOb. To learn more. visit: http://bobo.digicool.com Jim -- Jim Fulton Zope Corporation Thanks Jim! d ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
Hey, On Tue, Jun 16, 2009 at 6:27 PM, Aaron Wattersarw1...@yahoo.com wrote: [snip] If python had a framework that had a simple and straightforward organization 5 to 10 years ago I don't think either PHP or Ruby/Rails would have ever evolved. 5 years ago would've been far too late for PHP. Even 10 years ago; PHP has been around since '95 and I think was fairly popular quite soon. Even Rails goes back to '04 - not sure when it got really popular. (anyway, I know you were around back then and before me, I just like history) In general, I don't think there's anything that could stop people from creating their own new web frameworks. :) At best we can aim to reuse bits and pieces and work towards making that easier. Regards, Martijn ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
Hey, don't you people know that you could use a more polite word than Hey to salute people ? I'm just telling my own views. If you disagree then please say something more meaningful than this. Who cares what you know. Senthil Kumaran wrote: On Tue, Jun 16, 2009 at 12:15:29PM -0400, Etienne Robillard wrote: I think that if this Jim guy has lots of experience then at least he could not pretend that other people works are made by/for geniuses, which is probably untrue anyway. Hey, I don't understand why are being so negative with your comments. Does not sound good. I surely dont know what your contributions are, but I do know what Jim Fulton's contributions are. -- Etienne Robillard robillard.etie...@gmail.com Green Tea Hackers Club http://gthc.org/ Blog: http://gthc.org/blog/ PGP Fingerprint: AED6 B33B B41D 5F4F A92A 2B71 874C FB27 F3A9 BDCC ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
I recommend you quit using latin to try looking smarter. ;) I do I'm discouraged to see so much adversion between Python web frameworks fighting for the same goal. To say that you don't to be a genius implies that all other web frameworks are made for geniuses, which is probably offending for less-mature projects. Of courses I might have misread or taking for granted that this was a totally new project.. My apologies then to Jim... ;) Regards, Etienne This feels like an ad hominem argument which is both surprising and unproductive. Nathan regards, Etienne Martijn Faassen wrote: Hey, On Tue, Jun 16, 2009 at 4:51 PM, Etienne Robillardrobillard.etie...@gmail.com wrote: Nothing very new here. At least next time try to be a little more creative, otherwise this is getting slightly boring and repetitive... It's a bit rich to call Jim Fulton uncreative concerning web development. I suggest you delve into the history of Python web development for a bit. Of course back in '97 there was more to invent than there is today. Regards, Martijn -- Etienne Robillard robillard.etie...@gmail.com Green Tea Hackers Club http://gthc.org/ Blog: http://gthc.org/blog/ PGP Fingerprint: AED6 B33B B41D 5F4F A92A 2B71 874C FB27 F3A9 BDCC ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/nathan%40yergler.net -- Etienne Robillard robillard.etie...@gmail.com Green Tea Hackers Club http://gthc.org/ Blog: http://gthc.org/blog/ PGP Fingerprint: AED6 B33B B41D 5F4F A92A 2B71 874C FB27 F3A9 BDCC ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
On Tue, Jun 16, 2009 at 12:51:48PM -0400, Etienne Robillard wrote: Hey, don't you people know that you could use a more polite word than Hey to salute people ? I'm just telling my own views. If you disagree then please say something more meaningful than this. Who cares what you know. Sorry for that. I wrote that immediately after reading your response. Others have responded more appropriately. Thank you, Senthil ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
Typical. The first time I make the effort to reply to the list, I reply-to-sender rather than to-list. I'm a muppet. Anyway, reply below Begin forwarded message: From: Jason Briggs jasonrbri...@gmail.com Date: 16 June 2009 20:04:46 BST To: Etienne Robillard robillard.etie...@gmail.com Subject: Re: [Web-SIG] Announcing bobo Ad hominen isn't using latin to look smart. It's a common-term description of a type of argument... which just happens to be latin. You probably already knew that, but based on your previous emails I wasn't sure -- so just for your info. J On 16 Jun 2009, at 18:38, Etienne Robillard wrote: I recommend you quit using latin to try looking smarter. ;) I do I'm discouraged to see so much adversion between Python web frameworks fighting for the same goal. To say that you don't to be a genius implies that all other web frameworks are made for geniuses, which is probably offending for less-mature projects. Of courses I might have misread or taking for granted that this was a totally new project.. My apologies then to Jim... ;) Regards, Etienne This feels like an ad hominem argument which is both surprising and unproductive. Nathan ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
Hey all, I think we can pretty safely ignore Etienne as either a troll or an unnecessarily rude person. Has anyone looked at Bobo yet? I'd be interested in comparisons between it and Quixote, which is what I've mostly used in the past. I believe that Bobo begat Zope, which begat Quixote as (I thought) an attempt to return to Bobo-style programming, and so I'm curious about what sort of choices Bobo has made. thanks, --titus -- C. Titus Brown, c...@msu.edu ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
Pfft, I bet this thread would have never happened without my initial intervention. Likewise, I think you're just using this thread for your own interests, disregarding my own arguments on why web frameworks are so hard to cope with. If you want to start a thread for Bobo, please switch mailing-list or create a new thread, as all I wanted was to tell Jim my disappointement regarding Bobo, and I still think its not very revolutionary. Regards, Etienne C. Titus Brown wrote: Hey all, I think we can pretty safely ignore Etienne as either a troll or an unnecessarily rude person. Has anyone looked at Bobo yet? I'd be interested in comparisons between it and Quixote, which is what I've mostly used in the past. I believe that Bobo begat Zope, which begat Quixote as (I thought) an attempt to return to Bobo-style programming, and so I'm curious about what sort of choices Bobo has made. thanks, --titus -- Etienne Robillard robillard.etie...@gmail.com Green Tea Hackers Club http://gthc.org/ Blog: http://gthc.org/blog/ PGP Fingerprint: AED6 B33B B41D 5F4F A92A 2B71 874C FB27 F3A9 BDCC ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
Re: [Web-SIG] Announcing bobo
[Etienne] If you want to start a thread for Bobo, please switch mailing-list or create a new thread, as all I wanted was to tell Jim my disappointement regarding Bobo, and I still think its not very revolutionary. I completely disagree; this is definitely the appopriate list for discussing web frameworks and new approaches. There is no perfect framework in python, or any other language. It is only with the introduction, discussion, acceptance and assimilation of new ideas that we all move forward together. Jim has the longest history of all in Python web frameworks; he created the very concept. He founded and built the entire Zope community; I will always listen to what he has to say. I wish you the best of luck with your own web framework, notmm http://gthc.org/projects/notmm/0.2.12/ Which seems to have some potential, but currently lacks community support. http://gthc.org/community/ I'm looking forward to Europython, where I know I'll be meeting some great python folks, and hopefully some of us will get to continue our WSGI revision discussions. All the best, Alan. ___ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com