Tuesday, 2009-05-19

*** tpb has joined #melange00:00
*** jameslevy has quit IRC00:48
*** madrazr has joined #melange01:06
*** SRabbelier has joined #melange01:22
*** ChanServ sets mode: +o SRabbelier01:22
*** madrazr has quit IRC01:41
*** dbentley-laptop has joined #melange02:24
*** dbentley-lapto1 has joined #melange02:27
*** mithro has quit IRC02:33
*** mithro has joined #melange02:33
*** ChanServ sets mode: +v mithro02:33
*** dbentley-laptop has quit IRC02:46
*** solydzajs has joined #melange03:41
*** ChanServ sets mode: +o solydzajs03:41
*** schultmc1 has joined #melange03:56
*** ankitg is now known as ankitg|afk03:59
*** schultmc has quit IRC04:01
*** MatthewWilkes has joined #melange05:45
MatthewWilkesMorning melange peeps!05:47
tansellSRabbelier, ping?05:51
SRabbeliertansell: pong!05:58
SRabbelierMatthewWilkes: morning :)05:58
* SRabbelier is off for lunch :P05:59
tansellSRabbelier, I was just thinking that maybe the bot should get a voice so it stands out more06:07
tanselloh I guess I can do the following now too06:07
tansell~seen SRabbelier06:07
tpbtansell: SRabbelier was last seen in #melange 8 minutes and 25 seconds ago: * SRabbelier is off for lunch :P06:07
kblintansell: you switched to a supybot? no more mbot? :)06:12
tansellkblin, we switched about 4 years ago06:16
kblinrecently, yeah :)06:19
MatthewWilkesIt's not an IRC bot unless it's written in obtuse piles of TCL06:32
*** solydzajs has quit IRC06:37
* SRabbelier shudders 06:38
SRabbelierTCL, do not want06:38
MatthewWilkesSRabbelier: Thanks for applying my changesets - was all you changed adding the authors = [] list?06:43
MatthewWilkesIf I know, I can fix it next time06:43
*** mithro has quit IRC06:45
*** mithro has joined #melange06:58
*** ChanServ sets mode: +v mithro06:58
SRabbelierMatthewWilkes: uhm, yes, some docstring indentation issues too07:23
SRabbelierMatthewWilkes: added our license header too07:23
*** mithro has quit IRC07:35
MatthewWilkesSRabbelier: Ah, thought I had that?  Hmm07:49
*** tansell-laptop has quit IRC07:53
*** dbentley-lapto1 has quit IRC08:01
*** MatthewWilkes has quit IRC08:26
*** schultmc1 is now known as schultmc08:33
*** mithro has joined #melange08:44
*** ChanServ sets mode: +v mithro08:44
*** florinciu has joined #melange08:58
*** dr__house has joined #melange09:12
*** solydzajs has joined #melange09:50
*** ChanServ sets mode: +o solydzajs09:50
*** Merio has joined #melange10:04
*** dr__house has quit IRC10:11
*** dr__house has joined #melange10:12
*** solydzajs has quit IRC10:19
*** solydzajs has joined #melange10:22
*** ChanServ sets mode: +o solydzajs10:22
*** madrazr has joined #melange10:28
*** solydzajs has quit IRC10:41
ajaksuSRabbelier: ping?12:31
SRabbelierajaksu: pong13:02
ajaksuSRabbelier: talked to James Levy, he's OK with passing surveys to me :)13:04
ajaksuSRabbelier: do you want me to create a public repository?13:04
SRabbelierajaksu: I can rebase his work onto our hg repo if you want?13:04
ajaksuSRabbelier: I've done that already and made the code conformant to the style guide (and added csv exports), I can submit it to review in rietveld after I send my roadmap to the list if you'd like me to13:06
SRabbelierajaksu: ah, pretty sweet13:06
SRabbelierajaksu: do you have a bitbucket repo?13:06
ajaksuSRabbelier: nope, but I can create one if that'd help :)13:08
SRabbelierajaksu: anywhere public is fine :)13:08
ajaksuSRabbelier: would you rather see bad code on bitbucket or code.google? :D13:09
SRabbelierajaksu: bitbucket, since that's easier to blow away :P13:09
ajaksuSRabbelier: http://bitbucket.org/ajaksu/melange-surveys , now I'll try to push and see if things are as they should :)13:14
tpbTitle: ajaksu / melange-surveys / overview bitbucket.org (at bitbucket.org)13:14
SRabbelierajaksu: cool!13:14
*** dr__house has quit IRC13:15
*** dr__house has joined #melange13:15
*** dhaun has joined #melange13:16
*** madrazr has left #melange13:20
ajaksuit works :)13:34
SRabbelierajaksu: win :)13:39
* SRabbelier is going to try and get wireless on laptop by installing new kernel, will brb13:39
*** SRabbelier has quit IRC13:39
*** MatthewWilkes has joined #melange13:39
*** dr__house has quit IRC13:41
*** dr__house has joined #melange13:42
*** florinciu has quit IRC13:52
*** madrazr has joined #melange13:54
*** florinciu has joined #melange13:55
*** arun has quit IRC14:00
*** madrazr has quit IRC14:00
*** arun has joined #melange14:00
*** madrazr has joined #melange14:00
*** SRabbelier has joined #melange14:17
*** ChanServ sets mode: +o SRabbelier14:17
MatthewWilkeshey there SRabbelier :)14:35
*** SRabbelier has quit IRC14:35
*** SRabbelier has joined #melange14:36
*** ChanServ sets mode: +o SRabbelier14:36
*** MatthewWilkes has quit IRC14:40
*** MatthewWilkes has joined #melange14:41
MatthewWilkesdamned power cables14:43
*** Lennie has joined #melange15:49
*** ChanServ sets mode: +o Lennie15:49
* Lennie sends hordes of lemmings over madrazr15:50
* Lennie sends hordes of lemmings over SRabbelier15:50
MatthewWilkeshi there Lennie15:50
Lenniehi MatthewWilkes :015:50
Lenniemadrazr, SRabbelier: ping!15:51
madrazrLennie: pong15:51
Lennie1 more15:51
* madrazr has lot of cats to take care of those rodents :D15:51
dr__houseLennie: don't worry, madrazr is scared of cats and dogs. He hates pets :P15:52
Lennieokay :D15:52
* dr__house is pretty sure the rodents are larger than madrazr :P15:53
Lennieis madrazr small :)?15:54
dr__houseLennie: he's tiny15:55
*** dr__house has quit IRC15:59
*** dr__house has joined #melange16:00
*** florinciu has quit IRC16:00
LennieSRabbelier is afk :016:08
madrazrLennie: very rare of him :P16:09
Lenniemadrazr, I sent you my first wave of comments16:10
madrazrLennie: received16:10
MatthewWilkesThere's a tramp singing outside my window!16:11
LennieMatthewWilkes, stop feeding them scotch16:11
LennieMatthewWilkes, is he/she any good?16:11
MatthewWilkesReally not16:14
* SRabbelier was watching an old epp of House16:15
Lennielatest house epp16:18
Lenniehe said twss :P16:18
SRabbelier... shush!16:21
MatthewWilkeshmm, he's got a friend now16:24
* MatthewWilkes is recording16:24
MatthewWilkeshe's just shouting profanities now though16:25
Lennietime to call in the bobbers :P?16:25
MatthewWilkesbobbies :P16:25
Lenniethe fuzz :P16:26
Lenniethe boys in blue?16:26
LennieI'm not that good in synonyms :P16:26
*** dr__house has quit IRC16:30
*** madrazr1 has joined #melange16:33
*** madrazr has quit IRC16:33
MatthewWilkesSRabbelier: I've responded to that arch email, but I'm not very happy with the outcome, don't think it's all that clear how things fit together in plone based on it16:34
SRabbelierMatthewWilkes: then why'd you mail it? :P16:34
*** dr__house has joined #melange16:34
SRabbelierMatthewWilkes: no time to refactor? :P16:34
MatthewWilkesSRabbelier: It might be of some use, I dunno, but by the time I'd decided it was suboptimal I'd been writing it for an hour :P16:36
*** madrazr1 is now known as madrazr16:36
SRabbelierwhow, dedication!16:36
MatthewWilkesSRabbelier: I suggest it might be useful to have an Real-Time conversation16:37
SRabbelierMatthewWilkes: let me finish reading :)16:37
SRabbelierMatthewWilkes: and I'll RT-conversate you right away :P16:37
*** James--Crook has joined #melange16:45
Lenniehi James--Crook16:45
James--CrookAwesome post MatthewWilkes!16:46
* James--Crook waves to Lennie16:46
James--CrookMatthewWilkes: You describe using the adapter pattern.  Does that mean that there is a common API in plone which many modules conform to?16:47
MatthewWilkesJames--Crook: It's hard to explain how it all fits together, but the squall story at the end has psyched us all up these last few weeks, it's like all the work we did changing our dev style has been worth it16:47
MatthewWilkesJames--Crook: Not as such, each type of object defines its own interface, which intherit16:47
MatthewWilkesSo there is a generic content interface, one for documents, one for events, etc16:47
MatthewWilkesSo you do things like say "I want a login box on the left for all content types" or "I want a notice on the right for all event-ish things"16:48
James--CrookOK.  So let us say that we want to change comments in Melange so that they can be 'applied to anything'.  Scrawl and Quills suggest that there is a choice about that which I hadn't seen before...16:49
*** johndbritton has joined #melange16:49
James--Crookwhat is the conceptual difference between content interface and document interface?16:50
MatthewWilkesJames--Crook: Ok, Scrawl creates an addable "blog item" that gives basic UI.  Quills adapts groups of content into behaving like a blog, with things like date based perma-links, categories, etc16:51
MatthewWilkesThe categories are based on adapting content to the ISubject (or something) interface which allows to you get the cateogies out of arbitrary bits of content, they do different things.  Quills doesn't allow you to click "Add a blog entry", you click "Add a page" and it makes that page look like part of a blog16:52
MatthewWilkesJames--Crook: I don't understand what you mean by those terms16:52
James--CrookI am trying to see how to get maximum 'plu compatibility', i.e how we can give as many objects in melange the same interface, so that we can build in the most modular fashion possible.16:54
James--CrookSo if 'documents' and content have to have 'different' interfaces, that is something I'd like to try to avoid.16:55
James--CrookConcrete example:16:55
James--CrookOur documents are going to become a wiki.  And in wiki you can add categories to a page.16:55
James--CrookOur models/records are going to become taggable (for GHOP).16:56
James--CrookTags are 'the same thing' as categories.16:56
James--CrookWe want to internally use the same interface.  Hence an adapter (probably).16:56
MatthewWilkesOk, so here's how you'd do that in plone16:56
James--CrookSo the question about different interfaces is to understand better what the differences that can't be subsumed under one interface are.16:57
James--Crook(you said that document interface and content interface were different)16:57
MatthewWilkesDocuments and generic content would have an IContent interface (and ILinkable, all sorts of other stuff).  Documents would have the IDocument interface which is a child of the IContent interface.  There'd be others, IProgram, IProject etc16:58
MatthewWilkesSo, you can apply things to IContent and it'd apply to all logically "contentish" things, IDocument is just the document subset16:58
James--CrookAh. OK.  That makes excellent sense.16:58
MatthewWilkesWiki would be a document with IWiki as well16:59
MatthewWilkesWe'd have an IComments interface that you can adapt things to16:59
MatthewWilkesIf it errors, that means no comments are allowed16:59
MatthewWilkesif not, you get an object with methods like getComments() addComment(...) etc that handle it in a generic way16:59
James--CrookSo, ILinkable is an important new concept for me/Melange.  Indeed, it is good to be able to create a link to a (timestamped) version of a view....17:00
MatthewWilkesThis interface can then be switched out for a different implementation is needed17:00
James--CrookAdding comments...  got it.17:00
James--CrookHow does plone deal with two streams of comments?  (the public and private comments)?17:00
James--CrookPLone allows you to attach more than one thing to the same interface?17:01
*** solydzajs has joined #melange17:02
*** ChanServ sets mode: +o solydzajs17:02
MatthewWilkesbrb, sorry17:03
James--Crooks/plu compatibility/plug compatibility/17:03
*** Lennie has quit IRC17:05
James--CrookScrawl + Quills described here:  http://blogs.onenw.org/jon/archives/2009/05/01/squall-perfect-plone-blogging-with-scrawl-quills/17:10
tpb<http://ln-s.net/3Cwt> (at blogs.onenw.org)17:10
*** madrazr has quit IRC17:12
*** johndbritton has quit IRC17:12
MatthewWilkessprry, back17:13
*** solydzajs has quit IRC17:13
MatthewWilkesJames--Crook: Plone has lots of hooks that work on interface, you can assign any number of named things to an interface, or 1 unnamed thing17:14
*** dhaun has quit IRC17:15
MatthewWilkesFor public/private comments we simply set the comment objects to have the IWorkflowEnabled interface and assign them the workflow we wish17:15
MatthewWilkesImproving that system is a SoC project this year as it's currently a bit too codey17:15
James--CrookGot it.17:18
*** madrazr has joined #melange17:20
James--CrookI'd also like to pick up on the comment about permission architecture.  That is likely to change in Melange.  We think we need to be more granular...  at the moment we grant permissions in terms of actions on a model.  We'd like to take permissions down to individual fields.17:22
James--CrookCan you say a bit more about what changed in permission architecture in Plone?17:22
MatthewWilkesOk, in Plone there are a list of permissions and a list of roles17:26
MatthewWilkesUsers have various roles in subtrees of a site17:26
* James--Crook nods17:26
MatthewWilkesPermissions are associated with roles in subtrees17:27
James--Crooknice.  Roles are too all-or-nothing in Melange.17:27
MatthewWilkesSo if you have a role in a subtree and that role is on the permission, you have that permission17:27
MatthewWilkesEach method can have 0 or 1 permissions protecting it17:27
James--Crookif you don't have permission, is there an auto fallback for what to do instead?17:28
MatthewWilkesIf execution passes to a method that the user who started the request doesn't have permission to call the transaction is aborted and a login page displayed17:28
James--CrookOK.  So fixed-fallback.17:28
MatthewWilkesthat is expressed as an Unauthorised exception, so you can do try: ... except Unauthorized:...17:28
James--Crookso, you could code an alternative if you wanted.  nice.17:28
MatthewWilkesAlso, menu items can be conditional on a permission using the python expression hasPermission(context, request, permission)17:29
MatthewWilkesThe actions tool allows us to define lists of links/options etc, so we don't have to hard code each option17:29
* James--Crook nods17:30
James--CrookSo, what was the change that was disruptive?17:30
MatthewWilkesThe permissions arch is probably the thing that we're most proud of17:30
James--Crookwhat aspect of the original design changed?17:30
MatthewWilkesSome new convenience methods were added and existing methods moved/renamedto be more clear17:31
MatthewWilkesIt was at the level of being fixed by an automated script17:31
MatthewWilkesbut we considered that needed to wait for a major revision, and gave it 2 years of deprecation warnings17:31
James--CrookSounds not too disruptive then.  Changing from model level to field level will be disruptive for us, and even more so tree-level rights if we get there (and haven't planned for it).17:32
MatthewWilkesWe HATE losing compatibility17:32
James--CrookMelange can afford to, because it is such a young project.17:32
MatthewWilkesyeah.  Actually, thinking about it, maybe a more disruptive thing was how we do page composition17:33
James--CrookBut, we also have a tiny dev team, so if we can engineer things in a maximum power for least coding way (thinx combinatorial design) from the start, then we should.17:33
MatthewWilkesWe've changed the syntax and definitions, but they all have compatibility layers17:33
MatthewWilkesJames--Crook: +117:33
MatthewWilkesWe're got a few hundred, with ~20 very active17:33
James--Crookhe he.  We don't even have the concept of page composition.17:33
James--CrookWe'll probably first start to have something like that through wiki+stats.17:34
James--CrookThe thinking is that you can position a stats result in a page, e.g. a pie chart, much like positioning an image in a wiki page.17:35
James--CrookNot very flexible...17:35
MatthewWilkesWell, there's the pre plone 3 way, the plone 3 way and the plone 5 way.  5 is going to be so much fun making :)17:35
James--CrookI think melange team need to make a maieutics mtrix of features of the things we're 'related' to (CMSs, issue trackers, blogs, wiki....)17:37
James--Crookidentify the independent components.17:38
James--CrookAt some level I'm not really convinced that different models (GHOP/GHOP/Issues) are true components in the same way that code components are.17:38
James--CrookIdentifying that we are totally missing the concept of layout, linkable and event will help us not to do things in special case ways when they do crop up...17:39
James--CrookMatthewWilkes: can you say more about the difference betwen big modules and features that you alluded to in your e-mail?17:40
James--CrookYou said "you have to take account of two different uses for the api, the first is to add large new feature sets, such as a new programme, the second is to add small enhancements." and I am wondering if this puts different pressures/forces on the module system...17:43
MatthewWilkesOk, so, for us, content types are a big thing17:44
MatthewWilkesthey are simple python objects that hook into the "types tool" to allow plone to know about them17:44
MatthewWilkesPretty much everything else is just python that hooks into one of LOADS of different places17:45
MatthewWilkesthe interfaces are what brings all that together17:45
MatthewWilkesEach new module can define its own interfaces to adapt and utilities to lookup17:45
MatthewWilkesThat means that the core doesn't need to know about all the ways to extend the app, you can extend an extension17:46
James--CrookFor the sake of my thinking, I can treat 'content types' as visible objects that can be positioned somewhere on a page?17:46
MatthewWilkesNo, a content type is one of the group of things "Document, event, news item, image, file, etc"17:47
MatthewWilkesThe list of things that various users can add that contain content17:47
James--Crookaha.  more fundamental than I was thinking then.17:48
MatthewWilkesFor melange that'd be "Document, programme, organisation, proposal"17:48
James--Crookso...  when people come to add small enahncements... do they tend to make a module with a number of related enhancements in it...  What I'm thinking here is 'overcoming the module overhead'.17:49
James--CrookMy questioning is to determine whether there is any difficulty in having big modules and tiny ones coexisting and using the 'same' system.17:49
MatthewWilkesYeah, so we care very much about maintaining the usefullness of our code to other python coders17:50
MatthewWilkesSo we will never write something for plone that could be a python or zope library and an integration for plone17:50
MatthewWilkesIn the same way, we don't want to force people to use things they don't want to17:50
MatthewWilkesSo we have many small modules that don't do particularly much, but are logically independent17:51
MatthewWilkesFor example, the company I work for, members are organised into groups in one of our systems17:51
MatthewWilkesto do this, we have a package called opsuite.departments.interfaces that has all the common APIs for interacting with this relationship17:52
MatthewWilkesThen we have opsuite.departments.unit which is the implementation we made17:52
MatthewWilkesand opsuite.departments.compat which is an adapter based compatibility layer for the plone default system of groups17:53
MatthewWilkesThat way, we use opsuite.departments.interfaces in all our code that depends on that function17:53
MatthewWilkesbut we pick one of the other two to use when deploying a site, and it uses that implementation17:54
James--Crookok.  So if some of its functionality were exactly the same as the default, you would have a little code duplication, but that is just a tradeoff...  It saves making the general/usual one so full of hooks that no one can find their way around.17:55
James--CrookYou've given me a lot to think about.17:56
James--CrookI need to go away and think about it for a bit.  Thank you very much indeed.  I couldn't have hoped for better.17:57
MatthewWilkesNo problemo, ping me anytime if you want any clarifications17:58
James--CrookThanks!  Appreciated.17:59
*** SRabbelier has quit IRC18:00
*** SRabbelier has joined #melange18:01
*** ChanServ sets mode: +o SRabbelier18:01
SRabbelierMatthewWilkes, James--Crook: I just read up, was busy :(18:02
MatthewWilkesSRabbelier: No problemo :)18:02
SRabbelierMatthewWilkes: thanks for the talk, even if I was afk :P18:03
MatthewWilkesWe're modularity nuts these days18:07
*** dr__house has quit IRC18:07
MatthewWilkesZope used to have a bad rep for that sort of thing18:07
MatthewWilkeshttp://pypi.python.org/pypi?%3Aaction=search&term=collective&submit=search should show how much so, "collective" is our name for the SVN repo the whole community has access to, not just the core devs, and houses community modules18:08
tpb<http://ln-s.net/3Cxi> (at pypi.python.org)18:09
ajaksuoh, great, CC'ed the wrong list in my intro email :D18:09
*** madrazr has left #melange18:24
*** James--Crook has left #melange18:30
*** penyaskito has joined #melange18:46
*** mithro has quit IRC19:22
*** Merio has quit IRC19:33
*** tansell-laptop has joined #melange19:43
*** johndbritton has joined #melange20:08
*** tansell-laptop has quit IRC20:44
*** tansell-laptop has joined #melange20:44
*** MatthewWilkes has quit IRC21:13
*** mithro has joined #melange21:33
*** ChanServ sets mode: +v mithro21:33
*** dmitrig01|afk has joined #melange22:36
*** ChanServ sets mode: +v dmitrig01|afk22:36
*** dmitrig01|afk is now known as dmitrig0122:37
*** johndbritton has quit IRC22:54

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