IRC log of #zope for Monday, 2010-05-24

moo---_ToreadorVampire: correct00:00
*** TomBlockley has joined #zope00:00
moo---_as far as I know it just calls it without parameteres00:00
moo---_and throws exception if parameters are needed00:00
moo---_ToreadorVampire: does C# has anything like ZODB where automatic object traversing is possible?00:00
moo---_or "magical" traversing00:00
ToreadorVampiremoo---_: Yes, and yes - two ways00:01
ToreadorVampireIn "old C#" (as you'd find available in the repositories of stable Linux distributions) version 2.0 there is the idea of reflection - it's not very elegant but it allows me to do what I need to do00:01
moo---_we are talking about mono here?00:02
* moo---_ is huge fan of MonoTouch which shows the amazing power C# has00:02
ToreadorVampireIn newer C# (version 4.0 and up, too new for stable versions of mono at the moment) there is also dynamic typing, which I believe would also be capable of the job00:02
ToreadorVampireYes, mono00:02
ToreadorVampireBut tbh, since I don't develop for bleeding-edge mono - and C# 4.0's dynamic typing stuff is actually just syntactic sugar for reflection - I am using reflection00:03
moo---_how about db itself?00:03
moo---_object oriented databases as mature as ZODB for c#?00:03
moo---_or do you think object should expose traversing explicit through interface little like repoze.bfg?00:04
ToreadorVampireOh, well - that doesn't matter so much to me - I'm only really interested in the page templating mechanism at the moment.  For the back-end (business logic and repository code) I'm quite happy with what I have already00:04
moo---_I hope there would be someting like Plone for C# / .NET environment on some day00:05
ToreadorVampireOh - no, I wasn't going to tie the page templating system directly to the database - through the patterns I already follow, I already have an abstraction layer between the page templates and database00:06
moo---_python is getting rusty, I like new C# with all that syntatic suger very much00:06
moo---_LINQ and stuff00:06
ToreadorVampireMmm, again - LINQ is too new for me00:06
ToreadorVampireI have it on my "must check this out" list00:06
ToreadorVampireBut currently C# 2.0 is the newest version available in the version of mono included in Debian Stable00:06
ToreadorVampireAnd I use Debian Stable as my marker for my target platform00:07
moo---_newest and debian stable are hard to fit to the same sentence00:07
* ToreadorVampire realises that he can get a newer mono version - 2.4 IIRC if I permit myself to use backports, but I don't permit myself that00:07
ToreadorVampireI use Debian stable for a reason - it's ... stable :D00:08
bitmonk1moo---_: i've thought of building some zope-like concepts on C#, though truly IL is what you want to target. as for LINQ, it only seems like such a big deal because in C#, everything has to be stamped by Microsoft, or noone will use it.00:08
ToreadorVampireAnyway00:08
bitmonk1LINQ doesn't do anything particularly special..00:08
moo---_bitmonk1: it is "standard"00:08
moo---_learn once00:09
* bitmonk1 chuckles at the thought00:09
ToreadorVampireNo, it's not really much more than an ORM (assuming that LINQ-to-SQL is what you're really excited about)00:09
bitmonk1learn once, spend the rest of your career whining about the design decisions you couldn't participate in..00:09
ToreadorVampireHrm00:09
bitmonk1even Miguel and the Mono team largely have their hands tied wrt innovation00:09
* bitmonk1 interviewed for the Mono team some years ago ;)00:09
moo---_in any case... every system needs a database. I hope when PloneNG is build it would run on App Engine using C# :)00:10
ToreadorVampireI suppose that if I tried to handle methods with parameters in TALES then I am going to get bitten in the bum by method overloads - which overload do I choose etc00:10
moo---_so low end deployment would be trivial00:10
bitmonk1sure just convince google to use CLR and you're off ;d00:11
ToreadorVampireAlthough00:11
moo---_bitmonk1: exactly :P00:11
bitmonk1though, you can deploy basically CLR-style apps on JVM, is the point i was making.00:11
bitmonk1moo---_: not sure you picked up on the sarcasm00:11
ToreadorVampireI could use a custom attribute :D00:11
ToreadorVampireAnd that would allow me to mark (alias) a specific method as the one to use for TALES00:11
ToreadorVampireI could use the same for parameterised properties too00:12
ToreadorVampireSo:00:12
ToreadorVampire[TalesAlias("member")] public MyMember GetMember(string username) {}00:12
moo---_bitmonk1: well... there is nothing more for me to do to become Google App Engine Chief Architech and make my call :)00:12
bitmonk1ToreadorVampire: again, remember that C# is not the CLR, C# is the proof-of-concept specification.  You can use IronPython, PyPy, Boo, Nemerle, tons of languages out there which all compile/translate to the same Intermediate Language for execution00:12
bitmonk1and IL has features that C# does not take advantage of, as the JVM has features Java does not take advantage of..00:13
ToreadorVampirebitmonk1: Indeed - but I know C# a LOT better than any of the other languages you mentioned00:13
bitmonk1moo---_: word on the street is that appengine falls over every time there's a NASCAR race.  build your own. ;)00:13
bitmonk1ToreadorVampire: you don't know python?00:13
ToreadorVampireNo, not enough to write it00:13
moo---_wow. and you hang on #zope :)00:14
ToreadorVampireI don't "hang" on zope00:14
bitmonk1ah okay, scrolled up a bit00:14
ToreadorVampireI came here to ask a specific question :p00:14
bitmonk1working on TAL in C#, I might be interested to help there..00:14
moo---_there is TAL for PHP00:14
* ToreadorVampire is aware, but hates PHP even more than he hates aspx00:14
ToreadorVampireAny language that passes objects and arrays around by value rather than by reference (as their default behaviour) needs to be taken out and shot :(00:15
bitmonk1so, yeah, you might be able to decorate a c# method as the one you want TAL to talk to, but in general, you should bind the template to a view class, and just say, view classes and tal won't work properly with overloaded methods.  there's nothing wrong with convention.00:15
* bitmonk1 gives ToreadorVampire +1 brownie point to cancel out not knowing python very well ;d00:15
bitmonk1also, i guess, overloading should be based on paramaters.. so if you tal:content="something/getSomething", then you want a method which accepts zero arguments00:16
bitmonk1it's the same as just calling something.getSomething()00:16
ToreadorVampireI have always said that if I could go back in time by 5 years, I'd have suggested I buy a book on .py rather than a book on C#00:17
bitmonk1i'm not actually sure this is a problem you need to solve.00:17
bitmonk1it's never too late to know more than one language. ;)00:17
ToreadorVampirebitmonk1: I know, it's a time-related issue rather than a willingness-to-learn-related issue00:17
*** hever has joined #zope00:17
ToreadorVampireAnyway00:17
ToreadorVampireThe problem I am looking at is:00:17
bitmonk1python takes an hour or two to learn, tops, but that's not related to your problem. :)00:18
ToreadorVampireI have (say) two overloaded methods:  GetMember(int id) and GetMember(string username)00:18
*** hever has quit IRC00:19
ToreadorVampireNow as you probably know, C# will magically choose which of those to execute if I call GetMember with one parameter00:19
bitmonk1si00:19
ToreadorVampireBut it's somewhat harder to choose which to execute if all I have is a System.Object00:19
bitmonk1so, assign an interface.00:20
ToreadorVampireEven worse is if I have methods with different numbers of parameters, like uh ... GetMember(string username) and GetMember(string username, bool loadAdministrativePrivs)00:20
ToreadorVampire^^ bad example, but I was struggling for an example that uses 2 params00:21
bitmonk1python absolutely avoids that problem, btw, but i'll tell you about that later..00:21
ToreadorVampireNow I don't know if I want to use the single-parameter version or the 2-parameter version00:21
ToreadorVampireI might have a TALES path like this:  "GetMember/jbloggs/True"00:21
*** Arfrever has quit IRC00:22
ToreadorVampireBut does that mean:  "Use the second overload of the GetMember method with both of the following path pieces as parameters" or does it mean "Use the first overload, and then try to resolve 'True' from the member object that GetMember returned"00:22
bitmonk1so, if you have a view class, you can call it MemberListing, you can abstract this away from the template (as you should, templates are intended to create separation of responsibility and how will your designer ever understand this fangled conversation we're in? ;d)00:22
bitmonk1so you just define getMembers method, and in there, you call the overloaded method with the args you know00:23
bitmonk1i don't know if your TALES expression is really valid, honestly.  i don't think TALES handles paramaters, though it could simply be i've just never done that.  looking at the spec now.00:23
ToreadorVampireIt doesn't say anything about parameters at al00:24
ToreadorVampireall*00:24
bitmonk1if you followed my recommendation above, however, the same TAL could be used without modification against a zope app and a c# app00:24
bitmonk1TALES doesn't handle paramaters.  it's not meant to.00:24
bitmonk1you've some Design Patterns reading to do. ;)00:24
ToreadorVampireYeah00:24
moo---_which is not always nice00:24
bitmonk1seriously, this is what view classes are for.  they serve that purpose in python, in java, even most PHP development these days is done this way..00:25
bitmonk1most templating systems only support variables, which are provided typically by a view class..00:25
moo---_it would fun to have syntax folder/item/my_listing(type="Document")00:25
moo---_or something00:25
bitmonk1moo---_: you can python: in TALES00:25
bitmonk1but you can't c#:00:25
bitmonk1;)00:25
moo---_bitmonk1: yes but that's cumbersome :)00:25
ToreadorVampireWell - python: is only an optional TALES extension00:25
ToreadorVampireThere can be a C#: extension too00:26
ToreadorVampireIf it were implemented00:26
bitmonk1sure, though you'd be running a compiler in your template rendering00:26
moo---_actually I would forget TAL and use XSL as both are XML based template languages00:26
moo---_and XSL is much more widely used00:26
ToreadorVampireNah, I like TAL ;)00:26
ToreadorVampireIt's what attracted me to Zope years ago00:26
bitmonk1honestly, not *much* more, but it has some strengths.  its' weakness is that programmers think it is more interesting than designers, and templates should be accessible to designers.00:26
ToreadorVampires/Zope/Plone/00:26
bitmonk1somewhere down the line, you may grow your idea.00:26
bitmonk1and need more than one person working on it ;)00:27
ToreadorVampireExactly00:27
bitmonk1so, ToreadorVampire, in Plone, that's what we would do.  We define a view class, and make methods available to the template.  there are a number of reasons why that is a Very Good Idea(tm).00:27
ToreadorVampireI'm really just tinkering with the project atm in some spare time between client projects ...00:27
bitmonk1i actually might have a student project aroudn which does some of this, but i was focusing on an OFS implementation.00:28
ToreadorVampirebitmonk1: Mmm, it just seems that the View class is just a load of boilerplate that creates aliases for your templates that point straight to your Model code though (albeit that in Zope, the Model is the ZODB)00:28
ToreadorVampireIf those aliases are all that the view class provides, then it can be accomplished without the extra boilerplate using custom attributes - as long as there is no ambiguity between the aliases that those attributes expose then everything is fine00:30
ToreadorVampire(and in that scenario, I can detect ambiguity and throw an exception where it is encountered)00:30
ToreadorVampireWell - attributes = that extra boilerplate, but it doesn't involve creating a whole class for it, just adding [TalesAlias("someName")] to the members00:31
bitmonk1ToreadorVampire: it's not boilerplate, it has purpose.  it separates the details of how you're talking to your primary objects from the template logic.00:32
bitmonk1so, you may have three overloaded GetMembers methods, but you may have seven views that call them separately.00:33
bitmonk1and you get to do everything 100% native, in programmer-style..00:33
bitmonk1and you can unit test them.00:33
bitmonk1and the idea is look, keep your classes small.  it's a perspective, so why put tons of custom attributes on your model class?00:34
bitmonk1anyway, that's all opinion.  you can go through a decade of pain and anguish and then come back and we'll talk about it. ;)00:34
bitmonk1http://en.wikipedia.org/wiki/Design_Patterns if you don't have the book.00:35
bitmonk1the view doesn't necessarily have to be a class, but the point is, you write some normal code which builds up the data the template needs.  that could be a dict/hash you pass into a cheetah template, or whatever..00:36
bitmonk1testing wise, the complexity required to test that the rendered page puts '42' in a Meaning of Life div once you set that value in the model, versus just making sure it gets wrapped properly, huge power.00:37
bitmonk1but, sometimes we don't appreciate belts until our trousers fall down ;)00:37
ToreadorVampireMmm00:38
ToreadorVampireIt's certainly interesting00:38
bitmonk1fwiw, in python, btw, your overloading problem would be nil, because you simply set a default value for the second argument, which makes it optional.00:38
bitmonk1there are arguments that overloading has advantages, though.. trade one problem for another, you might end up with one very long python method, versus 3 easier to read in c#00:39
ToreadorVampireMmm, I remember ending up doing similar in ECMAScript which has no overloading00:39
bitmonk1ECMA has some similarities to python in the object model..00:40
bitmonk1of course, you can always write three different methods, then decide which one to call based on the arguments accepted by the one published in your api00:40
ToreadorVampireI'd switch to Silverlight/Moonlight for my clientside scripting if I didn't hate it so much (and if I wasn't so much of a web standards nut)00:40
bitmonk1ECMA's gonna be around a while, i think. ;)00:41
ToreadorVampireBut actually I have gotten to kind of like JavaScript - except for the infuriating urge to type check everything like a crazy person00:41
bitmonk1also, having the overloaded method have the same name, imo, is a semantic thing.. as far as C# or the CLR is concerned, you have GetMembers_int and GetMembers_string00:42
bitmonk1no compelling reason not to just name the methods differently and document that..00:42
bitmonk1and there's the question of, how much code may be reproduced in each overloaded method?00:42
*** ignas has joined #zope00:42
ToreadorVampireOf course - with the exciting new HTML5 stuff well on the way, I get my wish that Adobe Trash is not as needed as it used to be and perhaps even Silverlight will die00:42
*** davisagli is now known as davisagli|away00:43
ToreadorVampireOh of course - well - if there is duplicated code between two overloads then that duplicated code tends to farmed away to a new private method (or something)00:43
bitmonk1i think it's funny we talk about HTML5 so much in the web world, when most modern web development uses XHTML, and in implementation, most browsers, if not all major ones, will allow the video tag in XHTML.00:43
ToreadorVampiresignificant duplicated code that is00:43
bitmonk1something tells me a future XHTML will include the video tag, but that group just didn't want to be wedged between the FSF and Apple00:43
ToreadorVampireUh00:43
ToreadorVampireXHTML is dying, but HTML5 will have an XML syntax00:44
bitmonk1there is some crazy stuff in HTML5 i'm not crazy abuot..00:44
bitmonk1as of when? i was on the steering list until not long ago..00:44
bitmonk1are you sure you didn't just read that in Wired? ;)00:44
ToreadorVampireSo XHTML will kind of live on, but eventually all us XHTML folk will switch to HTML5/XML00:44
ToreadorVampireUh00:44
ToreadorVampireI thought I saw it last time I read the (draft) spec ...00:44
bitmonk1i mean, there's a lot of interpretation out there, this thing has been going on the better part of a decade..00:45
ToreadorVampire... which I admit was a few months ago ...00:45
bitmonk1the HTML5 group has no authority over the future of XHTML, last i checked, different things were being advanced by different groups, maybe that has come together.00:45
ToreadorVampirehttp://www.alistapart.com/articles/previewofhtml5 « I am talking about (what ALA here) calls the XML Serialisation of HTML5, known as XHTML 500:46
ToreadorVampireThose may not be the right names, but that's what I mean - the XML syntax for HTML500:46
ToreadorVampireXHTML yes I appreciate is a separate entity, and there's XHTML2 which is AFAIK dead in the water now00:47
ToreadorVampireBut HTML5 won the race00:47
ToreadorVampireSo XHTML is going nowhere now00:47
bitmonk1i just don't think that's entirely true.  that sounds like media sensationalism.  ALA sells web development seminars, it's in their interest to promote whatever is easier to sell.  that may not be what's really happening at w300:47
ToreadorVampireEventually I forsee that everyone who "currently writes in XHTML because they like XML" will switch to this 'XHTML 5' (which is really just HTML5 in XML syntax)00:48
bitmonk1XHTML is a smaller project, there was a ton less work to do for XHTML2 than for HTML5, but maybe that is what's happened.00:48
bitmonk1it's not so much about 'liking' xml as being able to use XML tools to process both RSS, ATOM, HTML, etc..00:48
ToreadorVampireEveryone who writes XHTML because they're clueless/copypasting/whatever will probably just end up using HTML5 plain00:48
bitmonk1HTML can be a pain in the ass because it does not validate..00:48
bitmonk1so yah i mean, in the end, whatever00:48
ToreadorVampireYes, I should have worded it "cares about their documents being XML"00:48
bitmonk1but the XHTML team was working on some important things that the HTML5 team (Mostly the iPhone team and their opposition) brushed aside00:49
bitmonk1maybe eventually they stopped arguing about why an international standard should be linked to apple's fabrication concerns and joined hands with people talking about markup.00:49
*** davisagli|away is now known as davisagli00:50
ToreadorVampireAh00:51
ToreadorVampireI knew I wasn't crazy00:51
ToreadorVampirehttp://dev.w3.org/html5/spec/Overview.html#the-xhtml-syntax00:51
* bitmonk1 often is00:52
ToreadorVampireAnyhoo00:53
ToreadorVampireThis idea of a view class ... which is essentially a series of aliases to the model - and in which there is no overloading permitted ...00:54
ToreadorVampireIn fact00:54
ToreadorVampireI am starting to think of more reasons I would want to use it00:54
ToreadorVampireBecause in a TALES expression, every value is a string00:55
bitmonk1you can also use it to do things like construct a string for display from multiple values..00:55
ToreadorVampireYes00:55
ToreadorVampireO00:55
ToreadorVampireOK00:55
bitmonk1so if you have a Member object, and it has a firstName and a lastName, you can have a getFullname method in the view.00:55
ToreadorVampireSo I can go with that00:56
bitmonk1its' usefulness becomes more apparent with use ..00:56
bitmonk1but, even in zope, you can totally bypass it by just declaring a template as a browser view in zcml.  it's not religion, but it solves your overloading problem.00:56
ToreadorVampirebitmonk1: Mmm - perhaps - although FullName should have been a read-only property of the member class in that case00:56
bitmonk1maybe except that is display functionality, it's not part of the model..00:56
bitmonk1view classes can also be approachable to junior programmers you may not want futzing with your model..00:57
bitmonk1it's a functionality that can evolve into an app, though.00:57
ToreadorVampireYes, perhaps00:57
ToreadorVampireI see your logic00:57
bitmonk1and beyond 'view classes', just, 'views'.  django and some other python frameworks use methods as views, and its' job is just to return the whole page as a string..00:58
bitmonk1so, it can do that programmatically, or it can build up a namespace, hand that to the template, and then return the rendered template..00:58
ToreadorVampireHrm00:59
*** touff has joined #zope00:59
ToreadorVampire6 hours to LOST finales ... can I complete the TALES parser before then?!00:59
bitmonk1heh00:59
* bitmonk1 has to wait for Hulu in the AM, boycotting cable TV subscription.01:00
*** davisagli is now known as davisagli|away01:00
ToreadorVampireic01:00
*** r0ver has joined #zope01:00
*** r0ver has left #zope01:01
ToreadorVampireCable here (that would be "in the UK") is pretty sweet01:01
ToreadorVampireNo reason to want to boycott it01:01
*** r0ver has joined #zope01:01
*** davisagli|away is now known as davisagli01:01
*** davisagli is now known as davisagli|away01:01
ToreadorVampireAnyway01:02
bitmonk1yah i got tired of paying for hordes of programming i don't want, when almost everything i watch is on Hulu.01:02
ToreadorVampireFor me, nothing is on Hulu unless I proxy01:02
bitmonk1ah sure..01:02
bitmonk1i also found for some time, when i watched less TV than i do now, that it was cheaper to subscribe to 1-2 shows on iTunes than pay for cable.01:03
*** davisagli|away is now known as davisagli01:03
ToreadorVampireAssuming I am going with a view class, then I do not have to worry about overloading.  If I throw a Type.GetMember(identifier) and the count of members returned is more than one then I can throw an exception01:03
bitmonk1and i just had some ridiculous futzing around, i had to buy a digital cable box to get non-basic cable, but it never worked properly, fought with my tivo, etc..01:04
bitmonk1yeah that should be fine..01:04
ToreadorVampirebitmonk1: Well, I guess I pay for the flexibility.  I can sit down any time I want and randomly find something to watch without needing to specifically have something in mind that I wanted to watch01:04
ToreadorVampirePlus, I get TV on the cheap because I also have [every other connectivity related service except mobile (cell) phone] with the same company01:05
bitmonk1yah i have a huge DVD collection i rely upon.  i miss Discovery and History, but I own a ton of History Channel I can watch from an old iPod, and Discovery is doing Sarah Palin's Alaska, which I thin I'll pass on.01:05
bitmonk1yah if i got phone from the cable company with my cablemodem, i would pay the extra $10 for cable or whatever, but i run my own voip.01:05
bitmonk1i called them once when my service was not working, and while they were talking to me, they asked if i wanted to upgrade to using their voice service.  i was like, i don't see how that would be helpful to me today. ;d01:06
ToreadorVampireMmm, my mobile phone is the only one I use nowdays01:06
*** daMaestro has quit IRC01:06
bitmonk1i've found that too costly, we get like a million minutes for a hundred bucks, the customers pay for the voip at their office, and my menial usage is pretty much free.  also, often better audio, multi-line, etc..01:07
bitmonk1and in san francisco i can rarely get a reliable signal indoors01:08
bitmonk1sprint has been better than AT&T, but that's not saying much ;d01:08
*** davisagli is now known as davisagli|away01:09
*** Ariel_Calzada has joined #zope01:09
*** Ariel_Calzada has left #zope01:10
ToreadorVampireHrm, the phone package I have is "calls to any UK landline = free" and I can 5-way conference call for free like that01:10
* ToreadorVampire is with Orange (but I don't think you get them out in the US)01:11
bitmonk1we get free calls from business lines, so i can answer a forwarded call from my voip.01:11
bitmonk1but again, the quality is crud comparatively.01:11
bitmonk1and i can call tokyo if i want01:11
bitmonk1we can get unlimited service, but the cost weighs against other things.  i ignore most phone calls.01:12
bitmonk190% of my incoming are from debt collectors ;d01:12
bitmonk1anyway.  tal in c#! ;d01:14
bitmonk1have you got code to show?01:14
bitmonk1i'd love to give some pointers.. will it be f/oss ?01:14
ToreadorVampireUh, my git repos is not public-accessible atm (well, not in a meaningful way) and yes, I have no reason to keep it to myself once it's done01:14
bitmonk1shove it on github :)01:15
bitmonk1early and often!01:15
ToreadorVampireI know, I know - I have been holding on to this one because (as many of personal projects are) it is as much about learning/practice as it is about actually creating an end product01:16
bitmonk1a great deal of open-source is.  some great ideas are created outside the pressure of delivering a solution to a business problem before happy hour. ;)01:17
*** giampaolo has joined #zope01:17
bitmonk1some of them stray a bit *too* far from real world, but pure technology solutions like a tal parser in C# would fall under that.  tell someone their project involves the creation of new reusable technology and they look at you as if you're embezzling. ;d01:17
bitmonk1they may at least, thankfully not everyone is so short sighted.01:18
ToreadorVampireHold on while I finishe refactoring this method and I'll pop some stuff on my webserver01:20
bitmonk1sweet, doing some work over here myself as well.  it would be fun to work on something a bit foreign.01:21
*** touff has quit IRC01:22
*** TomBlockley has quit IRC01:22
bitmonk1and, perhaps to help proliferate tal as well01:25
planetzopebotcollective.xdv 1.0rc7 (PyPI recent updates)  http://pypi.python.org/pypi/collective.xdv/1.0rc701:34
ToreadorVampirebitmonk1: http://www.toreadorvampire.co.uk/stuff/zpt.tar.gz01:38
bitmonk1that'll do :)01:38
ToreadorVampireThere are a few things I'm in the middle of - for example making sure that the only exception type that's allowed to escape the API is a TalesException (unless ArgumentExceptions are caused /directly/ by the parameters given to a method) but you can see that's nowhere near done yet01:40
*** alecm has joined #zope01:59
*** daMaestro has joined #zope02:11
*** aaronv_ has joined #zope02:16
*** aaronv_ has quit IRC02:17
*** aaronv has quit IRC02:19
*** r0ver has quit IRC02:29
*** r0ver has joined #zope02:31
*** ToreadorVampire has quit IRC02:39
*** jan_s has joined #zope03:01
*** touff has joined #zope03:12
*** Hypergraphe has quit IRC03:21
*** ccomb has quit IRC03:21
*** touff has quit IRC03:23
*** davisagli|away is now known as davisagli03:29
*** davisagli is now known as davisagli|away03:32
*** davisagli|away is now known as davisagli03:44
*** aaronv has joined #zope04:04
*** mcdonc has quit IRC04:09
*** mcdonc has joined #zope04:09
*** daMaestro has quit IRC04:15
*** giampaolo has quit IRC04:15
CIA-94tseaver * r112656 zope.app.wsgi/CHANGES.txt: ReST rendering fixups.04:21
CIA-94tseaver * r112657 zope.app.wsgi/ (CHANGES.txt setup.py): Prep 3.9.2 release.04:21
CIA-94tseaver * r112658 /zope.app.wsgi/tags/3.9.2: Tag 3.9.2 release.04:21
CIA-94tseaver * r112659 zope.app.wsgi/ (CHANGES.txt setup.py): svb04:21
*** alecm has quit IRC04:32
planetzopebotcollective.xdv 1.0rc8 (PyPI recent updates)  http://pypi.python.org/pypi/collective.xdv/1.0rc804:34
*** daMaestro has joined #zope05:04
*** aaronv has quit IRC05:32
*** daMaestro has quit IRC05:51
*** Vejeta has joined #zope06:03
*** dayne has joined #zope06:10
*** tiwula has joined #zope06:31
*** ignas has quit IRC06:47
*** tiwula has quit IRC07:09
*** huajie has joined #zope07:12
*** skt has joined #zope08:02
*** skt has quit IRC08:18
*** skt has joined #zope08:33
*** mcdonc has quit IRC08:47
*** mcdonc has joined #zope08:48
*** vipod has joined #zope09:06
*** d2m has joined #zope09:31
*** davisagli is now known as davisagli|away09:33
*** davisagli|away is now known as davisagli09:34
*** davisagli is now known as davisagli|away09:34
*** pthulin has joined #zope09:43
*** touff has joined #zope09:57
*** huajie has quit IRC10:00
*** touff has quit IRC10:02
*** KucukMubasir has joined #zope10:04
*** KucukMubasir has left #zope10:04
*** sashav has joined #zope10:22
*** touff has joined #zope10:29
*** planetzopebot has quit IRC10:33
*** planetzopebot has joined #zope10:34
*** hartym has joined #zope10:34
*** sim_sim has joined #zope10:42
*** vigith has joined #zope10:45
*** bigkevmcd has joined #zope10:55
*** regebro has joined #zope11:05
*** tarek_ has joined #zope11:07
*** eperez has joined #zope11:08
*** mcdonc_ has joined #zope11:13
*** mcdonc has quit IRC11:13
planetzopebotBook review: Grok 1.0 web development (Reinout van Rees' weblog)  http://reinout.vanrees.org/weblog/2010/05/24/grok-web-development-review.html11:34
*** smita has joined #zope11:34
*** ignas has joined #zope11:41
*** TomBlockley has joined #zope11:58
*** Hypergraphe has joined #zope12:00
planetzopebotstxnext.varnishpurger 0.1.1 (PyPI recent updates)  http://pypi.python.org/pypi/stxnext.varnishpurger/0.1.112:34
*** teix has joined #zope12:34
*** menesis has quit IRC12:39
*** MrTango has joined #zope12:54
*** evilbungle has joined #zope12:56
*** ignas has quit IRC12:58
*** tarek_ has quit IRC13:00
*** tarek has joined #zope13:01
*** MatthewWilkes has joined #zope13:13
*** emrojo has joined #zope13:21
*** ignas has joined #zope13:23
*** aaronv has joined #zope13:30
*** menesis has joined #zope13:48
*** zagy has joined #zope14:03
*** d2m has left #zope14:11
*** mcdonc_ has quit IRC14:20
*** mcdonc_ has joined #zope14:20
CIA-94hannosch * r112660 zope2docs/maintenance/index.rst: Add the LP steps to the release procedure14:38
*** touff has quit IRC14:46
*** touff has joined #zope14:51
*** eperez has quit IRC14:56
*** ccomb has joined #zope15:02
*** benji has joined #zope15:03
*** vigith has quit IRC15:11
*** lucmult has joined #zope15:15
*** lucmult has left #zope15:15
*** kiorky has quit IRC15:16
*** kiorky has joined #zope15:18
*** aaronv has quit IRC15:24
*** giampaolo has joined #zope15:26
giampaolohi, is there a way to know from TAL if a certain object (page) has an associated interface?15:28
*** evilbungle has quit IRC15:44
*** fdrake has joined #zope15:48
*** zagy has quit IRC15:52
*** Ariel_Calzada has joined #zope16:01
*** Ariel_Calzada has left #zope16:01
*** skt has quit IRC16:18
*** yvl has joined #zope16:26
*** aaronv has joined #zope16:28
*** alecm has joined #zope16:30
*** yvl has left #zope16:31
planetzopebotstxnext.staticdeployment 0.5.10 (PyPI recent updates)  http://pypi.python.org/pypi/stxnext.staticdeployment/0.5.1016:34
*** jim_SFU has joined #zope16:40
*** eperez has joined #zope16:51
*** sawdog has joined #zope16:52
*** redir has joined #zope16:53
*** touff has quit IRC16:54
*** alecm has quit IRC17:03
*** alecm has joined #zope17:15
*** tarek has quit IRC17:16
*** TresEquis has joined #zope17:22
CIA-94tseaver * r112661 zope.browserpage/CHANGES.txt: ReST rendering improvements, editorial.17:30
CIA-94tseaver * r112662 zope.browserpage/CHANGES.txt: Note test fix.17:30
CIA-94tseaver * r112663 zope.browserpage/ (CHANGES.txt setup.py): Prep 3.12.2 release.17:30
CIA-94tseaver * r112664 /zope.browserpage/tags/3.12.2: Prep 3.12.2 release.17:30
CIA-94tseaver * r112665 zope.browserpage/ (CHANGES.txt setup.py): svb17:30
CIA-94tseaver * r112666 zope.deferredimport/CHANGES.txt: ReST rendering improvements, editorial; note test fix.17:30
*** redir has quit IRC17:42
*** redir has joined #zope17:45
CIA-94tseaver * r112667 zope.deferredimport/ (CHANGES.txt setup.py): Prep 3.5.2 release.17:45
CIA-94tseaver * r112668 /zope.deferredimport/tags/3.5.2: Tag 3.5.2 release.17:45
CIA-94tseaver * r112669 zope.deferredimport/ (CHANGES.txt setup.py): svb17:45
CIA-94tseaver * r112670 zopetoolkit/zopeapp.cfg: Use fixed release of zope.app.wsgi.17:46
CIA-94tseaver * r112671 zopetoolkit/ztk.cfg: Use release of zope.deferredimport whose tests pass under Python 2.4.17:46
*** brguedes has joined #zope17:53
brguedeshello everybody17:53
*** touff has joined #zope17:54
brguedessomeone can tell me if the external python methods are uni-thread17:54
brguedes?17:54
moo---_brguedes: if you tell as what uni-thread means?17:55
brguedesif it is just one thread at which time17:55
TresEquisbrguedes: no17:56
TresEquisif they use a ZODB connection, it comes from a pool17:56
TresEquisall requests handled by Zope are done in "worker" threads17:56
brguedesbecause I read that external methods have a bad performance17:56
TresEquisbrguedes: where?17:56
brguedesI don't remember17:56
brguedesnow17:56
TresEquistypically they outperform PythonScripts, for instance17:56
TresEquisbecause they don't have security checks done17:57
TresEquisthey should run as fast as filesystem products code, normally17:57
brguedeshumm so It is better than python scripts in ZOPE17:57
brguedes:S17:57
*** pthulin_ has joined #zope17:58
TresEquisbrguedes: there aren't any others that are relevant on this channel17:58
TresEquisthe TTW PythonScript objects have to play in the RestrictedPython sandbox17:58
*** pthulin_ has quit IRC17:58
TresEquisfilesystem code doesn't17:58
TresEquisbut threading is the same either way17:59
*** pthulin has quit IRC17:59
*** daMaestro has joined #zope18:01
brguedesTresEquis: Can you tell me how can I manage the threads in externalMethod? better it is possible to manage?:p I'm saying this because probably each external method will be called by a different ZOPE thread, right?18:02
moo---_brguedes: yes18:02
moo---_what do you mean by "manage threads"?18:02
*** dayne has quit IRC18:03
moo---_you don't generally want to spawn threads on your own18:03
TresEquisbrguedes: are you trying to serialize access to some non-ZODB resource?18:03
TresEquisif you are just using "norma" Zope objects, you can just let the conflict resolution / retry mechanism do the work for you18:03
TresEquissorry, "normal"18:03
brguedesimagine one python script, that calls an external python method, but I want just one thread in each time in this external python method18:04
brguedesit is possible?18:04
TresEquisbrguedes: you need to explain why18:05
TresEquisLikely an ExternalMethod is not what you want here, but some kind of filesystem product18:05
TresEquisEM objects don't live in "normal" Python modules, which makes defining a module-scope lock impossible for them18:05
TresEquisif the lock is defined elsewhere, an EM can use it18:06
TresEquisbut I have to say that in 12 years of heavy Zope developement (my day job for most of that time)18:06
TresEquisI've almost never needed what you are describing18:06
TresEquisat least twice I ended up ripping out locks that a team member had added by mistake18:07
TresEquisWhat resource are you trying to protect from multithreaded access?18:07
*** mcdonc_ has quit IRC18:07
brguedesI trying to protect some piece of code that access to database and check the result18:08
brguedesbut if this code is running in 2 threads at the same time18:09
brguedesI've a problem18:09
brguedesright?18:10
brguedesfor example18:10
brguedesif I increment one field in database18:10
brguedesand read it18:11
brguedeswhen the first is writing the second could already read18:12
teixbrguedes: which database?18:13
brguedesmysql18:14
*** tiwula has joined #zope18:14
TresEquisbrguedes: if you are using a "normal" Zope database adapter, or using the correct transaction isolation level in a Python DBAPI on, you should be fine without doing threading18:14
brguedeshummm...18:15
brguedesI'm using the Python API18:15
TresEquisof course, "mysql" and "transaction" are not really compatible terms in general18:15
TresEquisbut try googling "python mysql transaction isolation"18:16
*** mcdonc has joined #zope18:16
brguedesso if I use mysql adapter ( ZOPE product) I don't have this problem?18:16
TresEquisbrguedes: if you use that adapter in its default configuration, then the transaction isolation stuff should be configured correctly18:17
TresEquisand coordinated with the main Zope transaction as well18:18
teixbrguedes: http://www.zope.org/Members/mcdonc/HowTos/transaction18:18
TresEquiswhich is what you likely want18:18
teixbrguedes: but as TresEquis mentioned you need some transaction 'glue' with Zope's transaction machinery18:19
teixbrguedes: like mysql adapter product18:19
*** alecm has quit IRC18:20
CIA-94tseaver * r112672 zopetoolkit/ztk.cfg: Use release of zope.browserpage whose tests pass under Python 2.4.18:22
*** alecm has joined #zope18:27
*** redir has quit IRC18:28
*** giampaolo has quit IRC18:28
*** redir has joined #zope18:29
*** redir_ has joined #zope18:32
*** menesis has quit IRC18:33
*** menesis has joined #zope18:33
*** redir has quit IRC18:33
*** redir_ is now known as redir18:33
planetzopebotProducts.ATMediaPage 0.2.1 (PyPI recent updates)  http://pypi.python.org/pypi/Products.ATMediaPage/0.2.118:34
*** TresEquis has quit IRC18:34
*** dayne has joined #zope18:35
*** sashav has quit IRC18:37
*** cwarner has joined #zope18:41
*** alvaro has joined #zope18:43
CIA-94satchit * r112673 zope.html/src/zope/html/tests.py:18:46
CIA-94import module from the new location.18:46
CIA-94Tests pass again.18:46
*** davisagli|away is now known as davisagli18:52
*** tarek has joined #zope19:00
*** SpankyFromBRC has joined #zope19:03
*** redir has quit IRC19:06
*** redir has joined #zope19:06
*** redir_ has joined #zope19:07
*** redir has quit IRC19:08
*** redir_ is now known as redir19:08
CIA-94satchit * r112674 /zope.html/branches/satchit-upgrade-ckeditor: branch to upgrade version of CKEditor.19:08
*** zagy has joined #zope19:08
*** Arfrever has joined #zope19:09
*** redir_ has joined #zope19:10
*** redir has quit IRC19:12
*** redir_ is now known as redir19:12
*** redir has quit IRC19:17
*** redir has joined #zope19:25
*** dayne has quit IRC19:27
*** redir has quit IRC19:29
*** redir has joined #zope19:33
*** dayne has joined #zope19:35
*** sim_sim has quit IRC19:38
*** menesis has quit IRC20:00
*** smita has quit IRC20:03
*** smita has joined #zope20:04
*** tiwula has quit IRC20:04
*** Vejeta` has joined #zope20:07
*** Vejeta has quit IRC20:09
CIA-94satchit satchit-upgrade-ckeditor * r112675 zope.html/src/zope/html/ (753 files in 196 dirs): Use latest version (v3.2.1) of CKEditor20:17
*** lucmult has joined #zope20:20
*** lucmult has left #zope20:20
*** lucmult1 has joined #zope20:21
*** lucmult1 has left #zope20:21
*** TomBlockley has quit IRC20:24
*** evilbungle has joined #zope20:27
*** MatthewWilkes has quit IRC20:28
*** ignas has quit IRC20:30
*** tiwula has joined #zope20:31
*** CIA-94 has quit IRC20:39
*** davisagli is now known as davisagli|away20:41
*** evilbungle has quit IRC20:45
*** giampaolo has joined #zope20:52
*** evilbungle has joined #zope20:58
*** sig11 has left #zope20:59
*** jim_SFU has quit IRC21:00
*** jim_SFU has joined #zope21:00
*** jim_SFU has quit IRC21:00
*** jim_SFU has joined #zope21:01
*** CIA-94 has joined #zope21:02
*** fruitwerks has joined #zope21:02
*** TresEquis has joined #zope21:04
*** davisagli|away is now known as davisagli21:14
*** lisppaste6 has quit IRC21:15
*** lisppaste6 has joined #zope21:15
*** emrojo has quit IRC21:15
*** tarek has quit IRC21:19
*** brguedes has quit IRC21:24
*** evilbungle has quit IRC21:51
*** allisterb has quit IRC22:02
*** teix has quit IRC22:05
*** menesis has joined #zope22:08
*** daMaestro has quit IRC22:15
*** allisterb has joined #zope22:16
*** daMaestro has joined #zope22:19
*** smita has quit IRC22:56
*** zagy has quit IRC22:58
*** smita has joined #zope22:59
*** tarek has joined #zope23:00
*** vipod has quit IRC23:03
*** digilord has joined #zope23:17
*** dc0e has joined #zope23:29
*** dc0e has left #zope23:30
*** alvaro is now known as Guest3275323:32
*** MrTango has quit IRC23:46

Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!