oki
10:47 < MikeSeth> it's before the end of the god damn DAY! :D
10:47 < v-dogg> :)
10:48 < v-dogg> and still 5/5
10:48 < MikeSeth> one day someone will put in 4.5.. and god, I don't want to be that guy
10:49 < MikeSeth> assuming average is rounded down.. of course ;D
10:51 < RossC0> MikeSeth - will you hunt him down?
10:52 < MikeSeth> Wouldn't everyone?
10:52 < MikeSeth> That is the guy who has to pay for the suffering of all these people who read his code
10:52 < MikeSeth> it's kind of a circular metaphor, but I think very expressive
10:54 < MikeSeth> You know, I think I would like it very much to clear the misconception that I am a contributor to Agavi
10:54 < MikeSeth> I am a very outspoken and loud and nasty advocate
10:54 < MikeSeth> Every time I drag someone in here I watch them undergo the same thing I went through: a big fucking WOW! Can't be!
10:55 < MikeSeth> And every time this happens, I am affirmed more that I am right in that there are some people who just cant write code, and that the pain that I feel when working on it is justified
10:56 < MikeSeth> http://www.scottberkun.com/blog/2007/asshole-driven-development/
10:57 < v-dogg> haha
10:57 < MikeSeth> look ath the comments of this post
10:57 < MikeSeth> its everywhere
10:57 < MikeSeth> I am terrified of it
10:58 < v-dogg> hear hear
10:58 < MikeSeth> RossC0: and I know you think I'm crazy, but I consider what I do art and I'm emotional about it
10:58 < MikeSeth> and this shows me every time that I do have the right
11:01 < v-dogg> it is simply unbelievable how much crappy software devs there are actually getting paid write code
11:01 < MikeSeth> often more than you or I do
11:02 < v-dogg> (some words missing there, don't let it bother you :)
11:02 < MikeSeth> the point is valid anyway :)
11:03 < v-dogg> I've had to work with a few systems produced by one of the biggest software supplier here in Finland, and the shit they come up with... huh...
11:03 < RossC0> MikeSeth - lol - some good names for common development patterns there!
11:03 < MikeSeth> RossC0: see? COMMON DEVELOPMENT PATTERNS
11:04 < RossC0> yup
11:04 < MikeSeth> most of the programmers today have no idea whatsoever
11:04 < RossC0> I'm getting you Mik
11:04 < RossC0> +e
11:04 < RossC0> MikeSeth: most of the programmers today have no idea whatsoever
11:04 < MikeSeth> imagine a blind neurosurgeon..
11:04 * RossC0 looks over his monitor and peers round the room
11:04 < RossC0> thank god I got my way
11:04 < v-dogg> lol
11:05 < MikeSeth> ok curse pain that begins now... i had to walk away from work because of this, day gonna suck
11:05 < MikeSeth> &
11:08 < RossC0> right curry time!
11:13 < _cheerios> all the pizza made me immobile
11:16 < simoncpu> ei... nyt2x everyone
11:16 < simoncpu> (it's nightime here in my part of the world)
11:16 * simoncpu off to play Warcraft DOTA
11:21 < Wombert> no no no
11:21 < Wombert> you didn't rate agavi yet on ohloh
11:21 < Wombert> you're not gonna get away!
11:21 < Wombert> :)
11:40 -!- epaulin [n=epaulin@221.221.38.24] has joined #agavi
11:57 < Xylakant> daily wtf
11:57 < Xylakant> $results = & $this->_db->fetchRows($query);
11:57 < Xylakant>
11:57 < Xylakant> if (empty($results))
11:57 < Xylakant> {
11:57 < Xylakant> return NULL;
11:57 < Xylakant> }
11:57 < Xylakant>
11:57 < Xylakant> $count = array();
11:57 < Xylakant> foreach ($results as $row)
11:57 < Xylakant> {
11:57 < Xylakant> $count[] = $row;
11:57 < Xylakant> }
11:57 < Xylakant>
11:57 < Xylakant> return count($count);
11:57 < Xylakant> if i catch the developer who commited that...
11:57 < Wombert> ROFL
11:57 < Wombert> :>
11:58 < Xylakant> svn blame to the rescue.
11:59 < Wombert> please tell me that was an intern from middle school
12:00 < digitarald> that one is real good ...
12:00 < Xylakant> i hope so. otherwise i'll send him back to middle school
12:00 < Xylakant> yeah. it fails in two amazing ways.
12:01 < MikeSeth> dear god
12:02 < Xylakant> exactly my first thought.
12:03 < MikeSeth> uh it fails in at least three amazing ways
12:03 < MikeSeth> and probably more when the control leaves is
12:04 < MikeSeth> i has a sandwich!
12:04 < Xylakant> what's the third way?
12:04 < MikeSeth> inconsistency of return values
12:04 < Wombert> null vs 1
12:04 < Xylakant> it does no error checking, and returns null intead 0f 0.
12:04 < Wombert> fire that guy :p
12:04 < MikeSeth> but thats probably a side effect of previous two
12:05 < Wombert> the other two?
12:05 < MikeSeth> reading the query result row by row and trying to count them like that instead of using aggregate count()
12:05 < MikeSeth> ...and failing at it
12:06 < kaos|work> and he is using a reference in $results w/o ever modifying $results
12:06 < Xylakant> it swallows any error code returned from the fetchRows method
12:06 < Xylakant> which will return false in an error case, but array() if no results were found
12:06 < Wombert> well yes but that's not failure. that's just uber crappy implementation, but the counting itself works
12:06 < MikeSeth> Xylakant: oh. Thats why it checks if $results is empty()
12:07 < MikeSeth> Xylakant: someone took the manual LITERALLY
12:07 < Wombert> mehehe
12:07 < Wombert> what's that, creole?
12:07 < Xylakant> using the reference is ok here, because of php4s braindead memory management
12:07 < Wombert> not creole then
12:07 < Wombert> :p
12:07 < Xylakant> no, this is code from one of our legacy projects
12:08 * Wombert shudders
12:08 < Xylakant> and now that i know who wrote it i'm even more amazed to see that code.
12:08 < Wombert> I am so sorry for the poor souls that haven't seen the light of Agavi yet :>
12:08 < Xylakant> because the guy is actually quite competent. i guess we all have our blind moments.
12:08 < _cheerios> commit: 02am, Xylanank "hecku*hic* party, now this last bug..." ;-)
12:08 < Wombert> yah
12:09 < Xylakant> it was not me :)
12:09 < MikeSeth> i had people reverse two year old commits as a part of something they were doing elsewhere
12:09 -!- SunboX [n=Miranda@80.243.35.154] has quit [Read error: 104 (Connection reset by peer)]
12:10 < Xylakant> but i admit that i've written code like that on more than one occasion.
12:10 < Xylakant> i didn't know any better back then.
12:10 < MikeSeth> i really have to remove that error checking to pass that parameter so I'll just not pass zero to avoid division by zero, ever
12:10 < kaos|work> Xylakant: using the reference is ok here, because of php4s braindead memory management <-- i tested references against "values" in php4 as funktion parameters
12:10 < kaos|work> values (which are internally done as reference with copy on write) was actually faster
12:10 < kaos|work> *were*
12:11 < Xylakant> depends on what you pass.
12:11 < Wombert> plus as he doesn't modify the set
12:11 < Wombert> a copy is never made
12:11 < Xylakant> strings use reference counting
12:11 < MikeSeth> Xylakant: technical shortcomings are forgivable, they are a matter of experience, but ignorance of COUNT() cant be
12:11 < Wombert> even php4 copied on change, not on assign
12:11 < Xylakant> not for arrays in all cases, afaik.
12:11 < MikeSeth> yeah sticky refs and shaodw copying confuse a lot of people
12:12 < MikeSeth> it makes sense, but its so counterintuitive some times
12:12 < Xylakant> and the method signature returns a reference, so you should use it to stay coherent
12:12 < kaos|work> uhm ... no xD
12:13 < Xylakant> and i did test passing arrays as copies/references just recently
12:13 < MikeSeth> wouldnt it fall off scope and resolve?
12:13 < MikeSeth> i mean in php4, w/o stickiness
12:13 < kaos|work> i would regard using a reference there as a declaration of intent to change the reference
12:13 < Xylakant> and it brought memory usage down to 3megs from 30megs
12:13 < kaos|work> but that may just be me ;)
12:14 < MikeSeth> kaos|work: most people do not express intent in their code. They write code that returns results.
12:14 < Xylakant> kaos: i'd say the same in a method signature.
12:14 < MikeSeth> except PHP's hinting is.. liberal, so to speak
12:14 < Xylakant> but returning a reference from a method is just saving a copy
12:15 < MikeSeth> Xylakant: imagine the chaos if someone declares the result var as static during a rewrite
12:15 < Xylakant> and believe me, at least php4.3 does copy the array.
12:15 < Xylakant> you would not return a reference in php5
12:15 < kaos|work> well, i believe you, i haven't used php4 for ages
12:15 < kaos|work> and i'm really glad i don't have to do that :)
12:16 < Wombert> what does "copy the array" mean
12:16 < Xylakant> you return an array from a function and it gets copied on assignement
12:16 < Wombert> yes
12:16 < MikeSeth> most people still write in PHP3, and a bit of new API like file_get_contents()
12:16 < Wombert> what do you mean by "it gets copied"
12:16 < Xylakant> bit by bit.
12:16 < Wombert> does it, literally, get copied, or is the returned one a copied representation
12:17 < Xylakant> literally
12:17 < Wombert> so you mean the copy is made on assign there?
12:17 < Xylakant> yes
12:17 < Wombert> how did you check
12:17 < Xylakant> for arrays
12:17 < Xylakant> using a tight loop assigning arrays returned from a method
12:17 < Wombert> I mean how do you know the array got copied
12:18 < Wombert> what I mean is
12:18 < Wombert> $a = $b;
12:18 < Wombert> $a is now a copy of $b
12:18 < Wombert> but internally, no copy was made
12:18 < Xylakant> checking the memory usage
12:18 < Wombert> ah okay
12:18 < Wombert> that's what I wanted to hear
12:18 < Wombert> :)
12:18 < Xylakant> which is true for strings, ints, all primitives
12:18 < Xylakant> but not objects and not arrays
12:18 < Xylakant> in php4 that is
12:19 < Xylakant> php5 is a completly different story.
12:19 < kaos|work> iirc i tested it for arrays and it didn't do a deep copy, but i may be wrong
12:19 < Xylakant> it might be ok in php4.4 even, but i'm shure php4.3 misbehaves
12:19 < kaos|work> well, i tested it in 4.2 or earlier
12:19 < kaos|work> it's some years ago ;)
12:20 < kaos|work> *was*
12:20 < kaos|work> omg
12:20 * kaos|work can't speak today
12:22 < Xylakant> but the part i like best about the code snippet is that instead of doing count($results) he even goes on to assing each array element to a new array. that's the cherry topping.
12:25 < Whisller[a]> http://cpaste.com/1205 what is that error means?
12:26 < RossC0> phew - I'm curried!
12:27 < Whisller[a]> http://dev.whisnet.pl/kalendarz/, http://pc-box.xon.pl/test/ - phpinfo
12:28 < RossC0> Whisller[a] - can you paste: config_handlers.xml
12:28 < Wombert> oh god not again :(
12:28 < Wombert> RossC0: it's the agavi default one
12:29 < Wombert> I believe it's a libxml error
12:29 < Whisller[a]> http://cpaste.com/1206
12:29 < RossC0> eek
12:29 < RossC0> yeap what Wombert said!
12:29 < Whisller[a]> hmm So what I can do with it?
12:30 < Wombert> Fastly had this problem before
12:32 < Whisller[a]> hmm but is there any ideas what can I do to eliminate that error?
12:32 < Whisller[a]> *this
12:32 < Wombert> not really
12:32 < Wombert> but we have to solve it now
12:32 < Whisller[a]> uhh
12:32 < Wombert> did this happen before?
12:32 < Wombert> on other platforms?
12:32 < Whisller[a]> On localhost it works fine, wait I check what php I have.
12:32 < Wombert> yes and libxml version
12:33 < Wombert> 2.6.16 is two and a half years old :p
12:34 < RossC0> I have PHP 5.2.1 and have libxml: 2.6.24
12:34 < Whisller[a]> Server: PHP Version 5.2.3 and 2.6.16 libxml Localhost: PHP 5.2.2 and 2.6.26 libxml
12:35 < RossC0> so Wombert can we add a LIBXML_VERSION check?
12:35 < Whisller[a]> Maybe really it's problem with libxml hmm I must write to my admin to upgrade libxml
12:36 < Wombert> guess not, RossC0
12:36 < Wombert> because I have 2.6.16 and it works without hiccups
12:36 < Wombert> that's the lovely thing about libxml
12:36 < RossC0> noo
12:36 < Wombert> it's so unpredictable
12:36 < RossC0> really?
12:36 < RossC0> hmm
12:36 < RossC0> what php version?
12:37 < Wombert> 5.2.2
12:38 < Wombert> 2.6.21 fixed xsd <-> namespace bugs, for example
12:38 < Wombert> so did 2.6.18
12:38 < Wombert> Whisller[a]: can you get that upgraded and then please (important!) let us know if that fixed the problem
12:39 < Whisller[a]> ok
12:39 < Wombert> that would be great
12:39 < Wombert> thank you
12:44 < MikeSeth> http://blog.vagueware.com/2007/6/18/introducing-chaos-to-development
12:44 < Whisller[a]> Ok I send email Now i'm waiting for upgrade.
13:03 < _cheerios> http://pixel-apes.com/safehtml/ is safehtml still king, or what's hot in 2007?
13:08 < RossC0> There you go v-dogg - that is better than nothing if you can't use tidy
13:10 < v-dogg> RossC0: ok, have to check it out even though I got the impression that the data is actually cleaned up by tinymce
13:10 < v-dogg> I went thru all the pages and everything looked ok
13:20 < RossC0> ah cool
13:21 < RossC0> XPATH question:
13:21 < RossC0> Does this make sense: //html:div[@id="content"]//html:h2="Logout Successful"
13:22 < RossC0> DomXPATH seems to be dumb - and I'm trying to get the h2 element inside the but does that just get the first h2 - which so happens to be inside #content
13:22 < RossC0> Wombert - you're an xpath man - what you reckon?
13:23 < Wombert> don't get it
13:24 < RossC0> no neither do I :(
13:25 < RossC0> nm - it works
13:25 < RossC0> I can test it out later
13:28 < v-dogg> hey, english people, what's the word when you want to rearrange a meeting or set a new date for it
13:28 < MikeSeth> reschedule appointment?
13:28 < v-dogg> "we have to take ... on that"
13:28 < MikeSeth> a raincheck?
13:28 < v-dogg> that's it, thanks
13:28 < MikeSeth> heh, it took just 2 tries.
13:29 < v-dogg> I tried to search for re*
13:30 < v-dogg> didn't understand that it actually was phrase, not a word
13:32 < MikeSeth> yeah it confused me too for some time
13:32 < MikeSeth> you know, like Londoners saying 'it rains cats and dogs'
13:36 < RossC0> ^ he's not lying
13:37 -!- codecop [n=codecop@78-61-128-127.ip.zebra.lt] has quit [Remote closed the connection]
13:37 < Wombert> raincheck?
13:37 < Wombert> wtf?
13:37 < Wombert> isn
13:37 < v-dogg> "take a rain check on smth"
13:37 < Wombert> 't that colloquial
13:37 < v-dogg> sure
13:38 < v-dogg> (what a weird word - colloquial :)
13:38 < Wombert> rain check
13:38 < Wombert> One entry found for rain check.
13:38 < Wombert> Main Entry: rain check
13:38 < Wombert> Function: noun
13:38 < Wombert> 1 : a ticket stub good for a later performance when the scheduled one is rained out
13:38 < Wombert> 2 : an assurance of a deferred extension of an offer; especially : a document assuring that a customer can take advantage of a sale later if the item or service offered is not available (as by being sold out)
13:38 < Wombert> hm
13:40 < v-dogg> m-w.com doesn't know about it, apparently :)
13:40 < v-dogg> (I see your screen from here)
13:40 < Wombert> HOW
13:41 < v-dogg> (just kidding, I'm reading your mind)
13:41 < Wombert> OH YOU WICKED FINNS
13:41 < Wombert> ah
13:41 < Wombert> well that's more like the weirdo way
13:41 * Wombert hugs v-dogg
13:41 < v-dogg> haha
13:41 < Wombert> is everyone in finland weird?
13:41 < Wombert> :)
13:41 < Wombert> certainly not as weird as you, but I mean in general
13:42 < Wombert> btw I saw a dish with "tits" in it earlier when I grabbed something from the chinese take away
13:44 < v-dogg> haha
13:44 < v-dogg> you noticed this and call me weird :)
13:45 < Wombert> word :p
13:45 < Wombert> it was some vietnamese thing I believe
13:45 < Wombert> they are the weirdos!
13:45 < v-dogg> deep fried dog tits on a stick
13:46 < v-dogg> yummy
13:46 < Wombert> wrapped in a pancake
13:46 < Wombert>
13:47 < v-dogg>
13:47 < v-dogg> any of you use vmware?
13:48 < Wombert> no no
13:48 < Wombert> IT'S NOT THE MAC WAY KTHXBAI
13:48 < Wombert> okay actually
13:48 < Wombert> what should I emulate on my crappy powerpc :p
13:48 * Wombert needs a macbook pro
13:50 < epaulin> http://www.phpclasses.org/blog/post/67-PHP-security-exploit-with-GIF-images.html
13:50 < epaulin> http://isc.sans.org/diary.html?storyid=3003
13:51 < Wombert> WHAT?
13:51 < v-dogg> goddammit that design makes my eyes bleed
13:51 < epaulin> :-)
13:52 < epaulin> PHP-security-exploit-with-GIF-images, pretty serious.
13:52 < Wombert> WHAT THE FUCK
13:52 < Wombert> this is not a vulnerability
13:52 < Wombert> this is not a php problem
13:52 < Wombert> omfg
13:53 < CIA-11> ross * r2002 /branches/ross-testing/ (92 files in 24 dirs):
13:53 < CIA-11> Added test generation phing commands to build.xml,
13:53 < CIA-11> Added test code templates in buildtools.
13:53 < CIA-11> Added some Sample Application Test files - mostly marked incomplete, however check out the Login functional test for an example of how to use AgaviBrowser
13:53 < CIA-11> run /agavi/tests/phing - to see what options there are.
13:53 < CIA-11> More information here: http://trac.agavi.org/wiki/testing#Ross-TestingBranch
13:53 < epaulin> yeah, I know. I'm not to blame the PHP.
13:53 < Wombert> oh ross baby
13:53 < Wombert> teh awesomeness
13:55 < RossC0> 2 things I have learn't
13:55 < RossC0> 1) I hate Phing
13:56 < RossC0> 2) PHP's XPath is bad for ones mental health
13:57 < Wombert> is it really
13:57 < Wombert> I don't find it particularily buggy or anything
13:57 < Wombert> it's libxml, again, anyway, but still
13:57 < RossC0> It just doesn't work like: http://www.w3.org/TR/xpath#location-paths
13:58 < Wombert> /html:div[@id="content"]//html:h2="Logout Successful"
13:58 < Wombert> should that be a true/false?
13:58 < Wombert> or select something
13:58 < RossC0> I evaluate so should be true
13:59 < RossC0> or should return a node
13:59 < RossC0> or something
13:59 < RossC0> if the h2 doesn't have Logout Successful it fails
14:00 < RossC0> anyway that can be cleaned up
14:00 < Wombert> yah
14:00 * Wombert hugs RossC0
14:00 < RossC0> also phing has really annoyed me as the information it returns is weak
14:00 < Wombert> zis is so ace
14:00 < RossC0> so may have to do our own formatter - to at least tell me the name of the test that errors
14:02 < RossC0> also markedIncomplete - means the phing "build" fails
14:02 < Wombert> pants
14:02 < Wombert> but we'll sort that
14:02 < RossC0> yup
14:02 < Wombert> it's good to see that you got it running and all
14:02 < Wombert> as I said, I'll try to get sebastian to help us with this whole testing stuff, too
14:02 < Wombert> and your experience helps a lot, of course
14:02 < MikeSeth> folks
14:02 < Wombert> the polish comes later
14:03 < MikeSeth> what's the actual purpose of phing except instantiating files?
14:03 < Wombert> annoying people?
14:03 < Wombert> :)
14:03 < Xylakant> hey. that's my job.
14:03 < Xylakant> i don't want that automated.
14:03 < MikeSeth> I mean
14:04 < MikeSeth> can we give it up on it?
14:04 < MikeSeth> its heavy and useless
14:04 < RossC0> MikeSeth - I wanted to keep it inline, with agavi, but basically in tests it includes the core files and then the tests / runs the tests
14:05 < RossC0> MikeSeth - you forgot painful to develop with and randomly illogical
14:05 < RossC0> But as there isn't any PHP replacement immediately available then what can we do?
14:06 < MikeSeth> RossC0: write one?
14:06 < MikeSeth> I'd be glad to, because I want an emacs extension that can enumerate Agavi objects
14:06 < RossC0> I vote write a cli agavi app to handle it all - but would there be a clash running two instances at once?
14:06 < MikeSeth> then we have a real native IDE
14:06 < RossC0> bbr
14:06 < RossC0> *brb
14:07 < MikeSeth> I dont think there would be a clash, I dont see how build system shares code with the application that's outside of Agavi distro
14:08 < MikeSeth> and project's config is not interesting for the build system either, except for XML validity maybe, so its a non-issue either
14:08 -!- _cheerios [n=jackbo@muxlim2.enterprises.evtek.fi] has quit ["bbl"]
14:10 < Wombert> not really
14:10 < Wombert> the "agavi" script could use the pear installed version when installed as pear
14:10 < Wombert> either way you hand it the agavi dir as it is now
14:11 < Wombert> only thing is that you then cannot work with src/ only anymore
14:11 < Wombert> (we should also move the buildtools out of src/ then)
14:11 < MikeSeth> Wombert: thats exactly what I mean. There's virtually no way to break the build system when working on an application
14:11 < MikeSeth> at least, I cant think of one
14:12 < Wombert> the cli runner is an app itself
14:12 < Wombert> sitting in etc/ or so
14:12 < Wombert> mhmmmm
14:12 < Wombert> it would be fucking ace actually
14:12 < Wombert> with web... and cli... and soap interfaces :>>>
14:12 < Wombert> but it's also a challenge
14:12 < MikeSeth> Wombert: "ace"? Perhaps you missed the part where I mentioned a development *toolbar* for Agavi. In-browser debugging.
14:13 < Wombert> due to the exec flow
14:13 < MikeSeth> Fuck me, I wanna do this!
14:13 < Wombert> remember, currently the script is asking questions
14:13 < Wombert> there's not really a place for this right now in agavi
14:13 < MikeSeth> True, but you can pierce the limitation by interacting via a third party library like PEAR console
14:13 < Wombert> wifi is borked
14:13 < Wombert> hold that thought
14:13 < Wombert> brb
14:15 < RossC0> right I gotta catch up on some work :D
14:15 -!- kaos|work [n=dominik@87.79.35.58] has quit [Read error: 104 (Connection reset by peer)]
14:16 -!- kaos|work [n=dominik@87.79.35.58] has joined #agavi
14:16 -!- Wombert [n=Wombert@87.79.35.58] has quit [Nick collision from services.]
14:16 -!- Wombert_ [n=Wombert@87.79.35.58] has joined #agavi
14:18 -!- Wombert_ is now known as Wombert
14:22 < Whisller[a]> I send app with agavi to another server with 2.6.14 libxml and there is this same error. So as you said it must be libxml
14:22 < Wombert> well that doesn't mean it's libxml, but it hints to it ;)
14:26 < Whisller[a]> 2.6.16 has 2 years?
14:26 < Wombert> 2.5
14:26 < Wombert> it's from nov 2004
14:27 < Whisller[a]> so then 2.6.16 must has greater like 3
14:27 < Whisller[a]> hmm
14:27 < Whisller[a]> tfu
14:27 < Whisller[a]> 2.6.14
14:27 < Whisller[a]> *greater than 3
14:35 < MikeSeth> Wombert: it just dawned on me that even the execution flow is not a problem for a native build system. You can just replace the execution filter or the action ;)
14:36 < MikeSeth> Wombert: in fact, I can think of a way to fake actions completely, rip out autoloading and store all the actions in the database
14:36 < MikeSeth> its creepy but a fun idea
14:37 < Xylakant> i've seen that. an app where the logic for a page was stored in the database
14:37 < Xylakant> sort of hard to work with :/
14:37 < Wombert> sort of retarded as well
14:37 < MikeSeth> Xylakant: yes. But how about this: you have a browser based IDE that works on the actions in the database.
14:37 < MikeSeth> Then when you click deploy it WRITES CODE
14:38 < Xylakant> especially since they didn't store full pages but 'blocks' that could be combined
14:38 < MikeSeth> you get a zipped up application tarball
14:38 < MikeSeth> you can even manage versioning in a way that is semantically meaningful in Agavi
14:38 < Xylakant> MikeSeth: gives me creepy feelings up my spine.
14:38 < MikeSeth> Xylakant: yes, but it can be done right
14:38 < Xylakant> no version control server
14:38 < Xylakant> no svn diff
14:38 < Xylakant> no tagging
14:38 < Xylakant> no branching
14:39 < Xylakant> why can't a browser based ide work on those old fashioned things called 'file'?
14:39 < MikeSeth> Xylakant: it can, but that's a lot of plaintext interaction
14:40 < Xylakant> no recursive php -l before a checkin.
14:40 < MikeSeth> why not? all of this is possible
14:40 < Xylakant> i agree. it can be done right.
14:40 < Xylakant> but the effort to do it...
14:40 < Xylakant> do you know typo3?
14:41 < Xylakant> large parts of the system are configured with a scripting language called typoscript.
14:41 < Xylakant> and there is a browser based editor for that and it's stored in the database
14:42 < Xylakant> the people that do typo3 projects here started using a regular texteditor, pasting the code from the browser in the texteditor, modifiy, check in the textfile and paste the code back
14:42 < Xylakant> the effort to pull such a thing of is way beyond using textfiles.
14:43 < MikeSeth> yes
14:43 < Xylakant> just imagine how much time you need to emulate subversions featureset.
14:43 < MikeSeth> you don't :D
14:43 -!- Arme[N] [n=Arme[N]@unaffiliated/armen/x-394205] has joined #agavi
14:43 < MikeSeth> specifically with subversion, you can use metadata to store Agavi specific stuff
14:43 < MikeSeth> you dont need to hack it or anything
14:44 < MikeSeth> now what I am trying to say is
14:44 < MikeSeth> Agavi is very likely to be the platform all of us are going to work with in foreseeable feature
14:44 < MikeSeth> future*
14:45 < MikeSeth> so it makes sense to make ourselves productive, since we will be working in the same idioms for a long time
14:45 < MikeSeth> Agavi notions of Actions, Views and Models are now my daily job
14:45 < MikeSeth> so if we were to write development tools for Agavi - of any kind - we better let these tools cooperate with Agavi idioms
14:45 < Xylakant> i do agree.
14:46 < Xylakant> my point is: don't reinvent the wheel.
14:46 < Xylakant> i doubt a browser based IDE would be a thing that's worth building, but i might be wrong.
14:47 < Xylakant> it's better to integrate with an existing IDE, or maybe write an eclipse plugin.
14:47 < MikeSeth> I want to do exactly that in emacs! And the problems are -still- the same
14:47 < v-dogg> wasn't splatch` already doing this?
14:47 < v-dogg> (ecplise plugin)
14:47 < RossC0> I vote for Keeping It Simple - I have an IDE I like and use already :D
14:48 < Wombert> everyone does
14:48 < MikeSeth> I need to have a foo to be able to create, edit and delete Agavi objects
14:48 < Wombert> so a cli solution is going to be the way to go till kingdom come
14:48 < MikeSeth> I dont care if the foo is an IDE, or a shell script, it doesnt matter
14:48 < Xylakant> slightly off-topic: Wombert, do you have time for a propel question (nested set)
14:48 < Wombert> or till everyone uses eclipse (god forbid)
14:48 < Wombert> oh, nested sets :p
14:49 < Wombert> sure
14:49 * RossC0 shudders
14:49 < Wombert> in #propel if you can
14:49 < MikeSeth> Wombert: yeah, all that's really needed is proper IO redirection and minimal IPC e.g. exit codes
14:50 < MikeSeth> Xylakant: e.g. in emacs I wanna be able to zoom in to a module, quickly jump to an action, and edit its particular execute() method, without seeing the security callbacks etc
14:50 < MikeSeth> just concentrate on the code I'm working on
14:56 < MikeSeth> Wombert: I think console can be implemented easily with a substitute routing implementation, am I right?
14:57 < MikeSeth> actually, you dont even need that
14:57 < Wombert> I don't think so
14:57 < Wombert> well you can haxor it
14:57 < Wombert> I'd have to sit down and think it through
14:57 < MikeSeth> just a way to translate cli requests into Agavi request objects
14:57 < Wombert> but essentially, agavi is built around a web centric request/response flow model
14:57 < MikeSeth> yes
14:58 < Wombert> I was thinking about special responses that can contain instructions for the controller
14:58 < Wombert> which then dispatch()es again
14:58 < Xylakant> MikeSeth: there is a ticket with a working patch in the bugtracker. far from perfect but the best i could come up with in the middle of the night.
14:58 < MikeSeth> why not reinitialize it every time?
14:58 < MikeSeth> Xylakant: for what, console?
14:58 -!- GMFlash [n=gmflash@cpe-71-66-114-120.neo.res.rr.com] has quit []
14:58 < Xylakant> yes
14:58 -!- GMFlash [n=gmflash@cpe-71-66-114-120.neo.res.rr.com] has joined #agavi
14:58 < Wombert> good question, I'm not sure if that works without side effects
14:58 < Wombert> we wanted to check that for 1.0
14:58 < Xylakant> well, cli
14:58 < Wombert> specifically for such purposes
14:58 < Xylakant> no real console
14:59 < Wombert> oh so much to do
14:59 < Wombert> Xylakant's one runs an action
14:59 < Wombert> it's not with user interaction
14:59 < Xylakant> that's it
14:59 < Wombert> which is what we would need for a cmdline iface
14:59 < MikeSeth> Wombert: I think its reasonable
14:59 < MikeSeth> you generally dont wanna let your PHP script run for arbitrary periods of time
15:00 < MikeSeth> the interpreter is nasty with memory management
15:00 < Xylakant> the way php leaks memory sometimes i'd rather not have it run for a longer period
15:01 < MikeSeth> also, even in cli, integration is easy and nice
15:01 < MikeSeth> you can pipe things, sed things, etc ;)
15:02 < MikeSeth> I'd really like doing something this in crontab: my-agavi-project users.update_all -d `date ....` -k $SOME_ENVO_VAR
15:02 < MikeSeth> etc
15:02 < MikeSeth> other than this you dont need much
15:03 < MikeSeth> duh, translating options to action parameters is easy.
15:03 < MikeSeth> You hook up a separate map via XML configuration fo revery action that's exposed to the cli
15:03 < MikeSeth> or even in routing
15:09 < kaos|work> you can (sort of) build a complete command line option parser in the routing
15:10 < MikeSeth> man
15:10 < kaos|work> and bringing REAL console support to agavi is quite high on my agenda (i always envisioned agavi to be able to handle everything ... web, gui, console, stuff i wouldn't even know exists ;)
15:10 < MikeSeth> how about web ajax command line
15:10 < MikeSeth> :D
15:11 < MikeSeth> in short
15:11 < kaos|work> hehe
15:11 < MikeSeth> I will try to kill the build system over the weekend and replace it with something more.. cooperative
15:11 < MikeSeth> any reason not to?
15:11 < RossC0> MikeSeth go go go
15:12 < kaos|work> yeah, do that
15:12 < kaos|work> was on my agenda as well, but i still didn't find a place where the day has 100 hours or so ;)
15:13 < MikeSeth> heh
15:13 < MikeSeth> i still have to finish that post :(
15:14 < kaos|work> http://blog.milkfarmsoft.com/?p=51 <-- cool, another thing i can take off my agenda *g*
15:14 < kaos|work> i think you can drastically speed stuff like soap up by building an (php written :eek:) daemon, which handles the requests and keeps agavi initialized
15:15 < kaos|work> since that's eating most perfomance there
15:21 < MikeSeth> ahaha
15:21 < MikeSeth> I know what you really think
15:21 < MikeSeth> you want Agavi as a PHP extension
15:21 < MikeSeth> you cant deny that
15:21 < MikeSeth> if PHP wasnt so horribly broken inside, you'd have a real application server with productivity of compiled C++ code
15:22 < MikeSeth> s/productivity/performance/
15:22 < MikeSeth> then again, you might wanna hack something on top of fastcgi instead
15:22 < MikeSeth> actually
15:23 < MikeSeth> if the memory leaks could be meaningfully contained, I'd make a barebone linux distro preconfigured to be an Agavi appserver
15:23 < MikeSeth> think of *that*!
15:24 < kaos|work> hah, very cool
15:24 < kaos|work> well, when doing that phpthrowdown stuff we found the leaks to be minimal
15:24 < kaos|work> ze chuckwalla ran w/ constant memory usage for quite some time
15:24 < MikeSeth> I worked with php5.0 extensively on very intensive operations
15:25 < MikeSeth> web spidering, text classification, etc
15:25 < MikeSeth> it leaked terrible
15:25 < MikeSeth> if preg_* or curl is involved, there's a hole right there
15:25 < MikeSeth> if there is even a tiny chance that memory leaks, you need to whip it into obedience
15:25 < kaos|work> yeah, if you work with different patterns there is
15:25 < kaos|work> they get cached on the first preg_ call
15:26 < MikeSeth> well.. and anonymous functions
15:26 < MikeSeth> and a bunch of other stuff that PHP mishandles almost criminally
15:26 < kaos|work> RossC0: very nice stuff you do there with that AgaviBrowser
15:27 < MikeSeth> WHAT WHAT WHAT
15:27 -!- Arme[N-1] [n=Arme[N]@unaffiliated/armen/x-394205] has joined #agavi
15:27 < kaos|work> in his branch
15:27 < kaos|work> he is completely simulating a web request while running in the same instance
15:27 < kaos|work> so you can access the context as it was after the request
15:27 < kaos|work> and stuff like that
15:27 < kaos|work> very very nice :)
15:27 < RossC0> kaos|work - not original I'm afriad
15:28 < RossC0> check out the authors
15:28 < RossC0> nice for them to give something back ;)
15:28 < MikeSeth> oh
15:28 < MikeSeth> nice
15:28 < MikeSeth> then you can hook up watir on the other end and have a fully automated testing chain
15:30 < MikeSeth> kaos|work: are there compile time options to disable preg_* caching? If one were to make their own application server, might as well kill those off
15:30 < MikeSeth> or expire the cache or something
15:30 < MikeSeth> Why PHP doesnt have Rubyesque regexps
15:30 < MikeSeth> *sniff*
15:31 < kaos|work> MikeSeth: oh, i don't think so, i just noticed it when i was looking thru the code
15:32 < kaos|work> RossC0: EEEEEEEEEEEEEK *g*
15:32 < RossC0> I know
15:32 < kaos|work> how much did directly copy ? ;)
15:32 < RossC0> OMFG - who'd have thought
15:33 < RossC0> yeap - its *all* theirs - only modded to work with Agavi
15:33 < kaos|work> ah, k *g*
15:33 < kaos|work> i think we need to discuss with them if we can relicense it as LGPL
15:34 < kaos|work> or lemme just check their exact wording in the license
15:34 < kaos|work> maybe we're allowed to publish it under the lgpl anyways
15:34 < kaos|work> (i wouldn't really want to have 2 licenses in our codebase)
15:34 < MikeSeth> showmeplz :D
15:35 < kaos|work> http://trac.agavi.org/changeset/2002
15:35 < kaos|work> http://trac.agavi.org/browser/branches/ross-testing/samples/tests/libs/AgaviBrowser.class.php?rev=2002
15:35 < RossC0> sure - well I'm not 100% sure if it 100 % what we need
15:35 < RossC0> ah that makes no sense
15:36 < RossC0> but you know - I'm not sure how much of the testing stuff will stay, its more to open the conversations
15:36 < RossC0> ah g2g - I got to pick my little one up from Nursery :D
15:36 < kaos|work> :))
15:37 -!- RossC0 [n=lawleyr@80.4.120.163] has left #agavi []
15:41 < Whisller[a]> kurwa is it everywhere 2.6.16 ehh
15:43 < Wombert> 425 public function shutdown()
15:43 < Wombert> 426 {
15:43 < Wombert> 427 // we remove all session data
15:43 < Wombert> 428 $_SESSION = '';
15:43 < Wombert> 429 }
15:43 < Wombert> 430
15:43 < Wombert> eww
15:45 -!- Arme[N] [n=Arme[N]@unaffiliated/armen/x-394205] has quit [Read error: 110 (Connection timed out)]
15:50 -!- Arme[N] [n=Arme[N]@unaffiliated/armen/x-394205] has joined #agavi
15:51 -!- Arme[N-1] [n=Arme[N]@unaffiliated/armen/x-394205] has quit [Nick collision from services.]
15:55 -!- Arme[N-1] [n=Arme[N]@unaffiliated/armen/x-394205] has joined #agavi
15:55 -!- digitarald [n=Miranda@200.Red-83-52-197.dynamicIP.rima-tde.net] has quit ["digitarald.de"]
16:02 -!- epaulin [n=epaulin@221.221.38.24] has quit ["Hmm... Upgrades."]
16:03 < MikeSeth> bah that's gotta bomb
16:13 < Arme[N-1]> shit whats wrong with my ISP
16:14 -!- Arme[N] [n=Arme[N]@unaffiliated/armen/x-394205] has quit [Read error: 110 (Connection timed out)]
16:14 -!- Arme[N-1] is now known as Arme[N]
16:19 < Arme[N]> ah I just lost kaos|work discussion with MikeSeth :(
16:19 < Arme[N]> may be one you send the log for me, start at
16:19 < Arme[N]> discussion
16:19 < Arme[N]> opps
16:19 < kaos|work> Arme[N]: www.agavi.org/irclogs
16:19 < kaos|work> :)
16:20 < Arme[N]> oO
16:20 < Arme[N]> but
16:20 < Arme[N]> let me check that
16:20 < Arme[N]> hehe thanks, kaos|work :)
16:21 < Arme[N]> ttj was not aroun and I...you know :P
16:21 < kaos|work> hehe, i was trying to find some logs yesterday
16:21 < kaos|work> which obviously didn't work, since ttj was not here
16:21 < Arme[N]> yup
16:22 < kaos|work> so i went to create the logs on the server ;)
16:24 < Arme[N]> kaos|work rocks
16:30 < kaos|work> oh, thanks :))
16:34 -!- Whisller[a] [n=example@217.97.146.67] has left #agavi []
16:43 -!- Wombert [n=Wombert@87.79.35.58] has quit [Read error: 104 (Connection reset by peer)]
16:43 -!- kaos|work [n=dominik@87.79.35.58] has quit [Read error: 104 (Connection reset by peer)]
16:43 -!- kaos|work [n=dominik@87.79.35.58] has joined #agavi
16:44 -!- Wombert [n=Wombert@87.79.35.58] has joined #agavi
17:04 -!- Xylakant [n=fgilcher@obc-r22-325-217-66-62-6.exozet.com] has quit ["Leaving"]
17:13 -!- Whisller[a] [n=example@217.97.146.67] has joined #agavi
18:58 -!- Whisller[a] [n=example@217.97.146.67] has left #agavi []
19:00 -!- Wombert [n=Wombert@87.79.35.58] has quit []
19:15 < splatch`> v-dogg?
19:15 < splatch`> v-dogg: ach, plugin, yes, i'll do it :)
19:24 -!- E_mE [n=E_mE@91.84.10.29] has joined #agavi
19:56 -!- Wombert [n=Wombert@xdsl-213-196-226-22.netcologne.de] has joined #agavi
20:08 -!- Arme[N] [n=Arme[N]@unaffiliated/armen/x-394205] has quit ["leaving"]
20:24 -!- Whisller[a] [n=example@217.97.146.67] has joined #agavi
20:45 -!- impl [n=impl@adsl-221-39-153.rmo.bellsouth.net] has joined #agavi
21:43 -!- Wombert [n=Wombert@xdsl-213-196-226-22.netcologne.de] has quit [Nick collision from services.]
21:43 -!- Wombert_ [n=Wombert@xdsl-213-196-226-22.netcologne.de] has joined #agavi
21:50 -!- Whisller[a] [n=example@217.97.146.67] has left #agavi []
21:52 -!- Wombert_ [n=Wombert@xdsl-213-196-226-22.netcologne.de] has quit []
22:05 -!- Whisller[a] [n=example@217.97.146.67] has joined #agavi
22:05 -!- Wombert [n=Wombert@87.79.35.58] has joined #agavi
22:14 -!- Whisller[a] [n=example@217.97.146.67] has left #agavi []
23:21 -!- implement [n=impl@adsl-221-39-153.rmo.bellsouth.net] has joined #agavi
23:22 -!- E_mE [n=E_mE@91.84.10.29] has quit [Remote closed the connection]
23:22 -!- impl [n=impl@httpcraft/php/impl] has quit [Nick collision from services.]
23:22 -!- implement is now known as impl
--- Day changed Thu Jun 21 2007
00:07 -!- kaos|work [n=dominik@87.79.35.58] has quit []
00:07 -!- Wombert [n=Wombert@87.79.35.58] has quit []
00:49 -!- implement [n=impl@adsl-221-39-153.rmo.bellsouth.net] has joined #agavi
00:50 -!- impl [n=impl@httpcraft/php/impl] has quit [Nick collision from services.]
00:50 -!- implement is now known as impl
02:58 -!- GMFlash [n=gmflash@cpe-71-66-114-120.neo.res.rr.com] has quit []
02:58 -!- GMFlash [n=gmflash@cpe-71-66-114-120.neo.res.rr.com] has joined #agavi
04:13 < simoncpu> question....
04:13 < simoncpu> is agavi's logging infrastruction only specific to agavi logs
04:13 < simoncpu> or can i use it for my own apps?
04:13 < simoncpu> :)
04:15 < impl> a request was to be able to pull it out of the Agavi core at some point
04:15 < impl> that hasn't been realized as of yet
04:44 -!- impl [n=impl@httpcraft/php/impl] has quit [Remote closed the connection]
06:11 < v-dogg> huomenta
06:16 -!- _cheerios [n=jackbo@muxlim2.enterprises.evtek.fi] has joined #agavi
06:19 < simoncpu> huomenta (^^,)v
06:21 < _cheerios> huomenta
06:48 < _cheerios> is it possible to sort a table in mysql, so results by default are in some order; and that it wouldn't do the sorting in the background, but actually keep the table sorted via some index?
06:49 < _cheerios> i noticed a bit of performance problems on a table with 2M+ rows, where the resultset is 5000-35000 rows, and then it needs to ORDER BY x DESC... *cringe*
06:51 -!- Whisller[a] [n=example@217.97.146.67] has joined #agavi
06:51 < Whisller[a]> hi
06:51 -!- Whisller[a] is now known as Whisller
06:54 -!- codecop [n=codecop@78-61-128-127.ip.zebra.lt] has joined #agavi
07:00 < simoncpu> _cheerios: i dunno... it's been a while since i've last used mysql
07:00 < simoncpu> but as far as i can remember, there was this index
07:01 < simoncpu> that you can create that will speed up sorting
07:01 * simoncpu forgot the details
07:01 * simoncpu is using sqlite
07:01 * simoncpu used postgresql before sqlite
07:02 < v-dogg> postgresql & sqlite here too
07:02 < v-dogg> love them both
07:07 -!- Arme[N] [n=Arme[N]@unaffiliated/armen/x-394205] has joined #agavi
07:12 < MikeSeth> huomenta!
07:12 < MikeSeth> simoncpu: of course you can use the logging
07:12 < MikeSeth> _cheerios: that's called index clustering
07:13 < _cheerios> what's it do?
07:13 < _cheerios> ah, what i wanted
07:14 < _cheerios> this is a bit of a problem for me as the table is bigger than the machines RAM and wills stay so
07:18 < _cheerios> going bigtime = headache
07:20 < MikeSeth> uhh
07:21 < MikeSeth> you can tune up the server, move some of the data to ram tables..
07:25 < _cheerios> i asked the same in #mysql and i partly agree with the answer. the table is just getting too big to handle. if i can't keep it in memory im fscked.
07:27 < _cheerios> things are so easy when you have money to throw at the problem. could just equip the server w/32GB RAM and be done with it.
07:27 < _cheerios> now it seems i need to partition, compress and what else o_O
07:30 < Arme[N]> huomenta!
07:34 -!- luke` [n=shoan@122.166.1.164] has joined #agavi
07:34 < luke`> huomenta ppl
07:50 -!- Arme[N] [n=Arme[N]@unaffiliated/armen/x-394205] has quit ["Lost terminal"]
07:50 -!- luke` [n=shoan@122.166.1.164] has quit [Read error: 104 (Connection reset by peer)]
07:50 -!- Arme[N] [n=Arme[N]@unaffiliated/armen/x-394205] has joined #agavi
07:50 -!- Arme[N] [n=Arme[N]@unaffiliated/armen/x-394205] has quit [Client Quit]
07:52 < MikeSeth> _cheerios: switch to postgres
07:54 -!- Arme[N] [n=Arme[N]@unaffiliated/armen/x-394205] has joined #agavi
07:55 -!- luke` [n=shoan@122.166.1.164] has joined #agavi
08:07 -!- Xylakant [n=fgilcher@obc-r22-325-217-66-62-6.exozet.com] has joined #agavi
08:15 -!- RossC0 [n=lawleyr@80.4.120.163] has joined #agavi
08:15 < RossC0> HUO
08:15 < RossC0> MENTA!
08:18 < _cheerios> MikeSeth, what would that help?
08:19 < Xylakant> hi
08:19 < MikeSeth> _cheerios: PostgreSQL is far superior at handling large and complicated data sets because it has an actual query planner
08:20 < MikeSeth> also, there is actual index ordering
08:20 < MikeSeth> plus, you have way more things to tickle when tuning
08:21 < _cheerios> i don't have the time to learn it all, tho :)
08:22 < v-dogg> I've ran tests with table with 10+M records and result sets with 10k-100+k rows (ordered) without worries
08:23 < v-dogg> of course it depends on your table/index structure
08:23 < _cheerios> did the table fit in memory?
08:23 < _cheerios> my guess, it probably did :)
08:23 < MikeSeth> in postgres you can do things to influence the planner's qurey strategy
08:23 < MikeSeth> it actually calculates the weight of every action
08:24 < simoncpu> so you must define every action as onDiet = true
08:24 < v-dogg> _cheerios: no, the table was about 2-3 times RAM
08:25 < _cheerios> i've only benched mysql/postgres once, and it did show a big difference when you had a (really) complex table and 1M+ rows.
08:26 < simoncpu> uhm, all long i had the impression that mysql was faster than postgresql
08:26 < simoncpu> although postgresql is more stable
08:26 < _cheerios> but i can still solve this by stickin' to mysql, just needs a bit of work. I don't have the time to learn postgres + postgres replication (including troubleshooting) just right now.
08:30 < RossC0> _cheerios - I would advise to make time at some point - from all I've heard you won't regret it
08:30 < _cheerios> the benchmark was http://phpgacl.sourceforge.net/
08:30 < RossC0> I'm having to do the same btw - so my next project will be postgres based
08:31 < RossC0> phpgacl - haven't used that for a while!
08:31 < _cheerios> RossC0, yeah, I hear good things about postgres. It's just that I haven't really had any problems with mysql, that would have me jump ship outright.
08:32 < _cheerios> phpgacl is niceish, but i wouldn't recommend running it on mysql :)
08:32 < RossC0> its alright - just index correctly
08:33 < _cheerios> in the beginning, sure :)
08:36 < _cheerios> only thing missing in my current replication setup is a secondary master that would pick up, when the master dies.
08:37 < _cheerios> http://www.mysql.com/common/images/scaleout/scaleout_diagram.png
08:37 < _cheerios> like that, i'm missing the heart :)
08:46 -!- Whisller [n=example@217.97.146.67] has left #agavi []
08:56 < simoncpu> ei,
08:56 < simoncpu> it's been a few months since i've last shut down my pc
08:56 < simoncpu> hmmmmm
08:56 < simoncpu> need to move my cubicle
08:56 < simoncpu> <-- a cubicle peon
08:56 -!- simoncpu [n=soulfury@58.71.34.138] has quit ["whoa.... it's been a few months since i've last shut down my pc"]
09:01 < luke`> is there support for custom config files(xml) in agavi now?
09:02 < v-dogg> kinda
09:02 < v-dogg> you have two options:
09:03 < v-dogg> 1. use 2. use ReturnArrayConfigHandler
09:04 < luke`> i am looking for ideas to integrate emailing into my app. The email messages need to be seperate templates and should be rendered via smarty. so I was thinking...
09:04 < v-dogg> + bonus: code your own handler and just plug it in :)
09:04 < MikeSeth> mmmmm my money making machine works
09:04 < luke`> store from address, subject and template to a config file
09:04 < MikeSeth> luke`: you can write a deferred action that renders mails, then use its output in another action to send the rendered content
09:05 < luke`> MikeSeth: huh? :)
09:05 < v-dogg> hehe, go MikeSeth go :)
09:05 < luke`> :)
09:05 < MikeSeth> luke`: you make an action that returns a rendered email
09:06 < MikeSeth> luke`: then another action calls it to obtain the email, and sends it
09:06 < RossC0> luke`: I have a custom Mail.xml - that holds that information as well as a flag to send_emails and add BCC for testing purposes
09:06 < luke`> :-/
09:06 < luke`> how do I get an action to render the email?
09:06 < v-dogg> MikeSeth: ever asked if that's possible with symfony or cake?
09:07 < RossC0> i.e. if send_emails is false it just sends it to BCC - so I can test output :D
09:07 < MikeSeth> v-dogg: whats the point? I know the answer.
09:07 < v-dogg> :)
09:07 < MikeSeth> luke`: just in case you didn't know.. you can execute actions inside actions or instead of actions :)
09:08 < MikeSeth> by the way that's what the barf lock does
09:08 < MikeSeth> it allows you to execute a subaction
09:08 < luke`> barf lock?
09:08 < MikeSeth> luke`: yeah, it's an option in Agavi
09:09 < MikeSeth> luke`: normally, Agavi protects the global Request during action execution
09:09 < MikeSeth> luke`: this makes it impossible to run actions from actions. Barf lock disables the protection.
09:10 < luke`> MikeSeth: wow, I really think I need an example. Could you whip up a simple one for me?
09:10 < MikeSeth> sure, hold on
09:12 < luke`> gotta run for a meeting... be back in about 40 mins
09:12 < MikeSeth> shit I cant remember where I had one now
09:13 < MikeSeth> here's a snippet
09:13 < MikeSeth> if (@ $q['granularity'] && $q['advertiser'] && $q['granularity'] != 'all')
09:13 < MikeSeth> $layer->setSlot('graphs', $this->createSlotContainer('Campaigns', 'RPU_CTRWidget', $q));
09:13 < MikeSeth> basically, this is a deferred action. this is how you assign one to a slot
09:14 < MikeSeth> your you can get one directly, by creating an execution container (slot container is a subtype of it) and running the action in the container
09:16 -!- kaos|work [n=dominik@87.79.35.58] has joined #agavi
09:16 < codecop> MikeSeth, u using linux or windows, in linux i have super bash search function
09:19 -!- codecop [n=codecop@78-61-128-127.ip.zebra.lt] has quit [Remote closed the connection]
09:22 < MikeSeth> i think his super bash search function killed his shell
09:23 < v-dogg> heh
09:28 -!- stachu [i=masq11@enc170.internetdsl.tpnet.pl] has left #agavi []
09:28 -!- stachu [i=masq11@enc170.internetdsl.tpnet.pl] has joined #agavi
09:42 < RossC0> codecop - shoot
09:43 < RossC0> I have: function cgrep () { grep -r "$1" . | grep -vE 'svn|~'; }
09:43 < RossC0> but always looking out for better :D
09:43 < RossC0> my bash skillz are limited!
09:44 < MikeSeth> hah
09:44 < MikeSeth> i never thought of that, great idea
09:44 < RossC0> heh kaos|work - was the license compatible?
09:45 < MikeSeth> RossC0: man you are lagged
09:45 < MikeSeth> or not
09:45 < RossC0> wow - I've been pinged
09:58 -!- digitarald [n=Miranda@200.Red-83-52-197.dynamicIP.rima-tde.net] has joined #agavi
10:00 < digitarald> Huomenta!
10:00 < RossC0> Huomenta digitarald
10:00 < luke`> back
10:01 < digitarald> building sql queries for related tags ... what a fun
10:01 < luke`> MikeSeth: just read your snippet. What about the barfing business?
10:08 < MikeSeth> luke`: you dont need it here. That's defered execution, the action isnt executed while another one is running
10:09 < MikeSeth> luke`: if you want to execute an action inside another action directly, then you need to flip the lock, because while any one action is running, the global request object is locked, so another action cant run because it has to collect data from the request
10:10 < MikeSeth> digitarald: oh I hate proximity calculations
10:10 < MikeSeth> luke`: you use an action directly by calling createExecutionContainer which gets you back a container
10:10 < MikeSeth> then you execute it in the container
10:14 < luke`> ok
10:17 < luke`> MikeSeth: How do I flip the lock?
10:23 < _cheerios> digitarald, tags are fun!
10:23 -!- luke` [n=shoan@122.166.1.164] has quit [Read error: 104 (Connection reset by peer)]
10:26 < _cheerios> what kind of stuff related to tags are you cooking up?
10:26 -!- luke` [n=shoan@122.166.1.164] has joined #agavi
10:30 -!- Whisller [n=example@217.97.146.67] has joined #agavi
10:32 < MikeSeth> http://trac.agavi.org/ticket/512
10:32 < MikeSeth> luke`: ^^^^^^^^^^^
10:33 < luke`> MikeSeth: thanks
10:35 -!- Arme[N-1] [n=Arme[N]@unaffiliated/armen/x-394205] has joined #agavi
10:35 < Whisller> Hi
10:50 < luke`> v-dogg: how do I use as a custom config file?
10:53 -!- Arme[N] [n=Arme[N]@unaffiliated/armen/x-394205] has quit [Connection timed out]
10:53 -!- Arme[N-1] is now known as Arme[N]
10:54 < v-dogg> value in settings.xml (or include it from another file with xinclude) and then just AgaviConfig::get('com.myapp.foo');
10:55 < v-dogg> prefix="com.myapp."
10:58 < luke`> v-dogg: will name="foo">boolean also work?
10:59 < v-dogg> yup, it just adds whatever prefix you have to the configuration directive name
11:00 < v-dogg> so you'd have 'com.myappfoo'
11:00 < v-dogg> oh, and yes, values are converted
11:00 < Whisller> RC5 of agavi when was realeased?
11:00 < v-dogg> couple of days ago
11:01 < Whisller> Can you precise a date ?
11:01 < v-dogg> http://trac.agavi.org/timeline can
11:01 < Whisller> hmm
11:02 < v-dogg> 2007-06-17
11:03 < Whisller> thanks :)
11:06 < Whisller> ohhh I'm stupid heh here is a changelog :)
11:07 < Whisller> hihi
11:11 < v-dogg> RossC0: I'm browsing through your branch and, man, I'm really looking forward to seeing this in action
11:11 < v-dogg> brilliant work
11:11 < luke`> whats he been working on?
11:11 < v-dogg> functional testing
11:11 < v-dogg> and testing in general, I think
11:12 < luke`> yummy
11:12 -!- RossC0 [n=lawleyr@80.4.120.163] has quit [Read error: 104 (Connection reset by peer)]
11:13 -!- RossC0 [n=lawleyr@80.4.120.163] has joined #agavi
11:13 -!- Arme[N-1] [n=Arme[N]@unaffiliated/armen/x-394205] has joined #agavi
11:16 < RossC0> v-dogg thanks dude
11:23 < Whisller> Hmm I have another problem :/
11:23 -!- Arme[N-11 [n=Arme[N]@80.191.141.181] has joined #agavi
11:24 < Whisller> http://cpaste.com/1216
11:24 < Whisller> site: http://pq8i28fexemi.az.pl/ phpinfo: http://pq8i28fexemi.az.pl/phpinfo.php
11:26 -!- Arme[N] [n=Arme[N]@unaffiliated/armen/x-394205] has quit [Nick collision from services.]
11:26 -!- Arme[N-1] [n=Arme[N]@unaffiliated/armen/x-394205] has quit [Nick collision from services.]
11:27 -!- Arme[N-11 is now known as Arme[N]
11:32 < RossC0> Whisller: You need to change you're max allowable execution time in php.ini
11:32 < RossC0> hmm
11:33 < RossC0> maybe not - mines set to 30
11:33 < v-dogg> I had that with some older version of libxml
11:33 < RossC0> ah ok
11:33 < v-dogg> it shouldn't take more than 30 to parse the configs
11:33 < v-dogg> not even with i18n on
11:33 < Whisller> But on localhost I also have 30 s and that error doesn't display :)
11:34 < Whisller> On that server libxml is 2.6.22
11:34 < Whisller> http://pq8i28fexemi.az.pl/phpinfo.php
11:34 < v-dogg> what php version?
11:34 < Whisller> v-dogg: phpinfo ^
11:35 < v-dogg> k
11:35 < Whisller> 5.2.2
11:35 < MikeSeth> http://lolcats2.com/Integrated.html
11:36 < Whisller> apache log from cpanel return only time execution errors
11:37 < RossC0> Whisller: can you up exec time? to see if that fixes it ?
11:37 < Whisller> ok wait
11:39 < Whisller> ini_set('max_execution_time', 60);
11:39 < Whisller> And still this same...
11:40 < Whisller> Maximum execution time of 60 seconds exceeded
11:41 < RossC0> Whisller - what configs do you have any custom ones?
11:42 < Whisller> hmm no
11:42 -!- Wombert [n=Wombert@87.79.35.58] has joined #agavi
11:42 < v-dogg> I had the exact same problem some time ago and it vanished when I either upgraded php or libxml (don't remember which one)
11:42 < Whisller> some class in autoload little change in setting but nothing else
11:43 < Whisller> and routing
11:43 < RossC0> Whisller - sure and you already updated libxml?
11:43 < Whisller> but I don't change a structure
11:43 < Whisller> Not it is other server
11:43 < Whisller> but here libxml is't old :>
11:44 < Whisller> I delete that folder and send it again
11:45 < Whisller> Ehh it's waiting...ehh
11:45 < MikeSeth> Whisller: what's your libxml problem?
11:46 < Whisller> On the first server (I said it yesterday) I have old libxml, now I don't know where is the problem.
11:46 < Whisller> It just don't work :)
11:46 < Whisller> It's waiting max execution time and end.
11:47 < Whisller> I send the app again
11:48 < MikeSeth> hmm
11:48 < MikeSeth> big document?
11:48 < Whisller> What document? What I'll send?
11:51 < MikeSeth> whatever libxml is working on
11:52 < kaos|work> RossC0: well, it definitly is compatible, that's not the issue, but i'm not sure if we can relicense it as lgpl
11:52 < kaos|work> we probably need to dual license that part
11:54 < kaos|work> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions
11:54 < kaos|work> the interesting part there is sublicense
11:54 < kaos|work> and i don't know how "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software." would conflict with the lgpl
11:54 < kaos|work> -how -whether
11:54 < kaos|work> +whether ofc
11:57 < Whisller> I'm sending app. We Will see what will be happen now :/
11:58 < RossC0> kaos|work: want me to ping him and see if we can go lgpl ?
11:59 < MikeSeth> kaos|work: donno about lgpl but it probably will conflict with gpl, because gpl is way narrower than that so I dont think you can sublicense a derivative work. IANAL.
11:59 < kaos|work> MikeSeth: its not gpl, its bsd
11:59 < kaos|work> RossC0: yeah, would be cool if you'd do that .)
11:59 < kaos|work> :)
11:59 < MikeSeth> kaos|work: no, I mean bsd would conflict with gpl, so the original authors need to dual-license, not you
11:59 < MikeSeth> donno about lgpl
12:03 < kaos|work> yeah, we can definitly include it in the source, that's not the question
12:03 < kaos|work> (you could do that with a gpl base as well i think, you would just need to dual license that part)
12:05 < _cheerios> someone use tidy? is it possible to validate the html input, without having it make it a html document by adding html,head etc.
12:06 < digitarald> no
12:06 < digitarald> because then its not a valid document
12:06 < digitarald> maybe add and remove them
12:08 < RossC0> kaos|work: So what am I asking?
12:08 < _cheerios> digitarald, right. It's input that i'm looking to "tidy", that are part of a page
12:08 < _cheerios> I don't need added syntax there at all, just to tidy up whatever is input.
12:08 -!- codecop [n=codecop@78-61-128-127.ip.zebra.lt] has joined #agavi
12:09 < kaos|work> if we can relicense that part as lgpl
12:09 < RossC0> ok
12:09 < kaos|work> keeping is as author, but not having to license it as bsd
12:10 < RossC0> MIT license isn't it?
12:11 < RossC0> anyway - I'll email
12:12 < kaos|work> yeah, but that's under the bsd style license category ;)
12:20 < MikeSeth> _cheerios: tidy the extension or tidy the cli too?
12:20 < MikeSeth> tool*
12:20 < _cheerios> tidy lib that is packaged with php
12:20 < MikeSeth> ah, donno. I use rxp for well formedness checks
12:21 < RossC0> _cheerios: I use tidy to enforce html fragments are valid xhtml
12:21 < _cheerios> i need this for form inputs that accept html, and i need to make the (often) invalid html valid, add those missing