Camelia, the Perl 6 bug

IRC log for #mojo, 2011-12-19

| Channels | #mojo index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:17 Alias joined #mojo
00:37 abra joined #mojo
00:57 j3nnn1 joined #mojo
01:21 yaxar joined #mojo
01:42 mire joined #mojo
01:47 mire_ joined #mojo
02:41 tempire mojo get
02:41 purl i think mojo get is just the command line frontend
02:41 tempire does it belong in a mojocast about user agent, or in a mojocast about one-liners and command-line tools (like ojo)
02:43 crab the latter, but it deserves a mention in the former.
02:50 tempire hmm
02:50 tempire not sure if command line tools is enough content to warrant an entire cast
03:09 mire_ joined #mojo
03:41 Psyche^ joined #mojo
03:42 MojoGuest320 joined #mojo
03:48 abra_ joined #mojo
04:03 abra__ joined #mojo
04:21 mire_ joined #mojo
04:37 GitHub191 joined #mojo
04:37 GitHub191 [mojo] kraih pushed 1 new commit to master: http://git.io/gNvWuQ
04:37 GitHub191 [mojo/master] reflow POD for marcus - Sebastian Riedel
04:37 GitHub191 left #mojo
04:51 MojoGuest763 joined #mojo
04:51 MojoGuest763 From: http://networkedblogs.com/33Knp (25 hits)
04:51 MojoGuest567 joined #mojo
04:51 MojoGuest567 From: http://www.google.co.jp/url?sa=t&rct=j&​amp;q=extjs%20irc%20client&source=web&a​mp;cd=1&ved=0CB8QFjAA&url=http%3A%2​F%2Fdev.xantus.org%2F&ei=28LuTsvTHMfGmQ​Ws3JXACg&usg=AFQjCNGw6nZv0wO42uzUnHhWcD​0vcKNULg&sig2=-CeISUN9TulEl37nGbdfSg (1 hits)
05:31 MojoGuest726 joined #mojo
05:51 marcus sri: too long lines?
05:51 sri marcus: 81!
05:51 purl 5.79712602074737e+120
05:56 perlite_ joined #mojo
06:01 sri i'm still undecided about ids in Mojo::IOLoop
06:01 sri no ids seems more correct
06:22 marcus I've been trying to convince metacpan guys to implement max line lengths for pod
06:25 tempire arg!
06:25 tempire I've had it with sketch
06:25 marcus :o
06:26 tempire no, I didn't actually want to save those color changes. thanks for reverting everything before exporting.
06:29 marcus tempire: it's not photoshop ;)
06:29 tempire it would be great if it just worked as expected.
06:29 marcus sri: but if it's not ids, it's various types of objects, right?
06:30 marcus tempire: it's always done that for me. no idea what you're talking about with colors and exports tho =)
06:30 marcus sri: or do you consider everything a ::Stream object? :p
06:30 tempire I've never had this particular problem before
06:30 tempire change the color of text
06:30 purl tempire: that doesn't look right
06:30 sri marcus: what else would it be?
06:31 tempire then export, and all the changes disappear
06:31 marcus sri: timers?
06:31 purl timers are scheduled for whenever.  The post() events are insertion-sorted into the list so they happen between alarms.
06:32 sri marcus: this is not about timers
06:32 marcus sri: but timers have ids?
06:32 sri that's not relevant, i'm talking only about client/server
06:34 sri the question is if connections should be maintained by Mojo::IOLoop, or if we push responsibility up to the Mojo::UserAgent layer
06:35 tempire hmm.  guess you can't use the font dialogue.  have to use the fill inspector
06:37 GitHub77 joined #mojo
06:37 GitHub77 [mojo] kraih pushed 1 new commit to master: http://git.io/V27alg
06:37 GitHub77 [mojo/master] added experimental close method to Mojo::IOLoop::Stream - Sebastian Riedel
06:37 GitHub77 left #mojo
06:38 marcus sri: are we talking both client and server connections?
06:38 marcus sri: sounds a bit strange for the UA to handle server connections
06:38 sri the UA doesn't have server connections
06:38 marcus tbh it seems like the responsibility of the ioloop to handle inputs and outputs.
06:39 marcus but I guess the UA and Server could manage the connections,  and hand them off to the ioloop
06:40 sri let me dumb it down some more :)
06:40 marcus probably helps you think about it, anyways ;)
06:40 tempire oh snap
06:40 sri the question basically is who keeps the reference to the stream object, ioloop or ua/daemon
06:41 sri stream object containing the actual connection handle
06:42 marcus sri: I think it would be natural for the ioloop or ua/daemon to create it, and then put it into the ioloop.
06:42 marcus uhm, I mean for the ua/daemon to create it
06:42 marcus not the ioloop
06:42 sri ioloop will always create them
06:42 marcus that seems backwards to me
06:43 sri ua/daemon just trigger creation
06:43 marcus sri: then def. let ioloop keep the reference
06:43 sri i think we need more devs knowing that part of the code, would make decisions a lot easier
06:44 * sri cracks the whip
06:44 * sri closes door
06:44 * marcus triggers the trapdoor and flees
06:44 sri :S
06:45 marcus I'm trying to understand why the ::XS json thingie returns 1 for bool rather than '1'.
06:45 marcus copied over your latest test suite for Mojo::JSON
06:45 marcus it seems to be doing the same thing for bools as Mojo::JSON does
06:46 marcus sri: I got permissions for it last night btw
06:46 sri yay
06:48 sri why not just make a Mojo::JSON::XS module that infects the Mojo::JSON namespace like Mojo::Base::XS does?
06:50 marcus I might do that later
06:50 marcus -infect is an option to Base::XS
06:50 sri \o/
06:50 sri yea, i like how it just works without really affecting core maintainability
06:50 marcus first I want the damn thing to work like ::JSON module
06:51 sri of course
06:51 marcus sri: I noticed you both use $self->error and _exception
06:51 marcus in ::JSON
06:51 marcus why not always _exception?
06:54 marcus I actually mean, why not always die
06:54 marcus or croak
06:55 sri because if (my $json = $self->req->json) {...}
06:55 marcus specially things like 'Wide character in input', I would imagine just croaking would be better than setting ->error and returning
06:56 marcus sri: but if the json is malformed it will die?
06:56 sri no
06:57 sri it returns undef
06:57 marcus _exception('Expected array or object')
06:57 marcus _exception dies
07:01 sri only to break out of recursion
07:03 marcus sri: ah, I see. You die, then eval it and set error
07:04 sri if you want to know details you use ->error, but most of the time i'm fince with knowing that it's not valid json
07:04 sri *-c
07:05 marcus sri: I don't think the error handling in current Mojo::JSON::XS is messed up then
07:05 marcus it sets ->error and returns undef if parsing fails
07:06 sri well, i only know that part of Mojo::JSON has been comepletly rewritten since Mojo::JSON::Any
07:07 marcus sri: might be, but they seem to behave the same.
07:07 sri good
07:08 * marcus goes back to figuring out why [true] expects a string rather than a number, and gets a number
07:11 sri hmm, i really want to just leave Mojo::IOLoop alone… but i can't get rid of the feeling that i'm missing some much better design choice
07:11 marcus I want you to leave it alone too :)
07:12 sri you're not helping ;p
07:12 sri or actually you are
07:15 marcus \o/
07:15 marcus I CAN HALP
07:17 marcus I bet you're saying me not wanting you to fuck with it makes you even more determined to fuck with it :-/
07:18 MojoGuest744 joined #mojo
07:18 sri you not wanting me to fuck with it makes me even more determined to fuck with it
07:19 sugar joined #mojo
07:19 marcus :-/
07:20 * marcus brings $offspring to daycare, later.
07:20 * sri goes to get breakfast, later.
07:24 tempire but
07:24 tempire I need halp
07:33 sri https://github.com/kraih/mojo/issues/247 # commented
07:33 koban joined #mojo
07:34 Vandal joined #mojo
07:39 mire_ joined #mojo
07:59 sri memowe: i never trusted those blue M&Ms!
08:18 marcus tempire: call a shrink.
08:20 * marcus is back from daycare, with kid that has diarrhea.
08:20 marcus guess I'm in for a shitty day :-/
08:24 abra_ joined #mojo
08:33 abra__ joined #mojo
08:42 berov joined #mojo
08:43 spleenjack joined #mojo
08:43 abra_ joined #mojo
08:52 plu oh :/
09:18 Vandal I need good and simple mod to html, any advise?
09:19 Vandal except Mojo::DOM
09:19 marcus Vandal: I don't understand what you need.
09:19 marcus a 'mod'?
09:19 Vandal module
09:20 Vandal something like Mojo::DOM but less sux would be great
09:23 marcus Vandal: eh.
09:24 marcus Vandal: can you please explain what you think sucks about Mojo::DOM?
09:24 marcus Because I think it's awesome.
09:26 Vandal cuz I have to check if there are more then one tag before iterate it, this leads to a lot of useless code
09:26 Vandal this is not the perl way
09:26 marcus Vandal: I think you are doing it wrong
09:26 Vandal teach me
09:26 sri oh my
09:27 marcus Vandal: paste what you have?
09:27 marcus Vandal: nopaste, not in channel.
09:29 marcus Vandal: because 'each' for instance does not care if your selector has one or more elements, so I don't quite understand your concern.
09:29 Vandal $dom->div->each is good for '<div>foo</div><div>bar</div>' but bad for '<div>bar</div>'
09:29 Vandal you wrong
09:29 Vandal it cares mutch
09:29 sri is this guy for real?
09:30 sri i better go away now
09:30 marcus Vandal: ~ $ perl -MMojo::DOM -le'Mojo::DOM->new("<div>OH NOES</div>")->find("div")->each(sub {print shift->text})'
09:30 marcus OH NOES
09:31 Vandal http://paste.org.ru/?26h61b
09:31 marcus Vandal: I just proved to you that it works.
09:32 marcus Vandal: change ->div to find('div')
09:32 purl marcus: that doesn't look right
09:32 marcus sri: I think your synopsis is confusing him.
09:32 sri marcus: i stopped caring after "sux", sorry
09:33 Vandal marcus, its wrong
09:33 marcus yeah, he's got something of a bad attitude.
09:33 marcus Vandal: you're coming of as rude at the moment.
09:33 marcus Vandal: it might be because you're a russian with limited english skills, but still..
09:33 Vandal find is looking for all divs on all levels
09:34 marcus Vandal: I'm sure you can write a better css selector if you try.
09:35 plu :)
09:35 Vandal marcus, look http://paste.org.ru/?pq9pol
09:35 Vandal I din't get <div>bar</div> by   $dom->div->each
09:36 Vandal but by find it does
09:36 marcus Vandal: no shit
09:36 crab that's because they do different things
09:36 Vandal thats right
09:37 sri there's a POD bug i'll fix
09:38 Vandal if you have ->each you should be able to use it no mater how many nodes you have
09:39 Vandal its like if for() wase not be abele to work with list of 1 element
09:39 Vandal oh typos :(
09:39 sri or actually, no, there is no bug
09:44 mire_ joined #mojo
09:47 marcus Vandal: I'm guessing you're parsing an actual html document, in this case you could do find('body > div') to only get the first level divs - https://gist.github.com/1496358
09:47 sri marcus: find('div:root'), children('div')
09:49 marcus Vandal: or div:root as sri points out :)
09:49 Vandal marcus, there are no divs in body, there are a lot of divs in divs
09:50 marcus Vandal: so use div:root to get the root ones. The point is, if you always want a collection, use find. ->div and such is for walking the tree.
09:50 Vandal I'll try, thanks
09:50 sri marcus: children also always returns a collection
09:51 sri ->children('div') is the always collection version of ->div
09:51 marcus sri: neat.
09:52 marcus Vandal: and next time, maybe not start the conversation by saying our software sucks :p
09:52 sri ->div is a little different to make element walking more pretty, ->div->p->text vs ->div->[0]->p->[0]->text
09:52 marcus sri: yeah, I figured.
09:52 sri there is a head1 section missing, i'll add it
09:53 heytrav joined #mojo
09:54 marcus sri: maybe change the second walk example to use children->first ?
09:56 Vandal marcus, I'm sorry, I wasn't mean to offend any one, I love your software, but this thing just drives me crazy :)
09:57 marcus Vandal: if you don't want to use find, change div to children('div') as sri suggested.
09:57 Vandal I'll try it
10:01 GitHub163 joined #mojo
10:01 GitHub163 [mojo] kraih pushed 1 new commit to master: http://git.io/tbskNw
10:01 GitHub163 [mojo/master] added child elements and element attributes section to Mojo::DOM documentation - Sebastian Riedel
10:01 GitHub163 left #mojo
10:02 sri hmm, those should be two sections i guess
10:02 sri huge title
10:05 cosmincx joined #mojo
10:06 GitHub110 joined #mojo
10:06 GitHub110 [mojo] kraih pushed 1 new commit to master: http://git.io/PjLw9g
10:06 GitHub110 [mojo/master] split child elements and element attributes sections - Sebastian Riedel
10:06 GitHub110 left #mojo
10:13 marcus sri++ # good changes.
10:13 sri \o/
10:15 sri http://mojolicio.us/perldoc/Mojo/DOM#text # reminds me of another experimental feature that needs feedback
10:17 marcus sri: I use that often
10:17 sri marcus: when do you need untrimmed text?
10:17 marcus sri: no, just ->text, not the trim argument
10:17 marcus didn't know about it.
10:18 sri untrimmed is the experimental part
10:18 marcus sri: I don't actually understand what it means :)
10:18 marcus sri: including whitespace?
10:18 sri yes
10:18 sri raw text
10:18 AmeliePoulain joined #mojo
10:18 marcus right
10:18 sri by default we trim similar to a browser
10:18 marcus not needed that so far
10:20 sri smart trim means we respect cdata, script, style and pre
10:20 marcus sri: I'm sure somebody somewhere needs it :)
10:21 sri so far, i only know of Akron, who made me add it
11:15 sri hmm
11:16 sri another reason to keep ids...
11:16 marcus \o/
11:16 sri central connection management in Mojo::IOLoop makes graceful shutdowns much easier
11:19 lammel2 joined #mojo
11:20 marcus http://www.w3.org/News/2011#entry-9147
11:21 sri glad we don't have software patents over here
11:21 marcus yeah
11:21 marcus I don't even understand what's patented
11:22 marcus Widget Access Request Policy?
11:23 marcus don't like the way adobe tries to pose this either tho - http://twitter.com/#!/flexengi​neer/status/148635006196121601
11:24 marcus ah, applies to http://www.w3.org/TR/widgets-access/
11:26 marcus which isn't even a spec yet. If the w3c is unable to find prior art, they probably need to rework that spec to not include apple's patented technique.
11:27 marcus sri: btw, was looking into writing Mojolicious::Command::perldoc yesterday, to render pod into TextMate using PODRenderer
11:27 marcus so that I can get nicer pod into TextMate
11:27 marcus or Command::pod2html maybe
11:29 sugar joined #mojo
11:55 arpadszasz joined #mojo
12:35 sri "Timer 61352e117053df648b34a4a7efb5b674 failed: panic: attempt to copy freed scalar 7fed40cefdd0 to 7fed40a45818 at /Users/sri/repo/mojo/blib/lib/Mojo/IOLoop.pm line 308."
12:35 sri fun
12:38 marcus sri: perl memory management ft
12:38 marcus … l
12:39 sri seriously
12:39 purl is that for real?
12:44 GitHub53 joined #mojo
12:44 GitHub53 [mojo] kraih pushed 1 new commit to master: http://git.io/92n1Fw
12:44 GitHub53 [mojo/master] fixed small error event quirk - Sebastian Riedel
12:44 GitHub53 left #mojo
12:46 sri tempire: how far have you gotten with reading up on IO* internals?
12:47 sri i could really use a second educated opinion
12:49 cosmincx joined #mojo
12:50 sri i've talked so much about disadvantages, maybe it's time to also highlight some advantages
12:51 sri $self->tx->connection->timeout(300)
12:51 sri that would be one possibility
13:09 Akron joined #mojo
13:11 Akron sri: I found ->text(0) less useful than I thought. In all cases I thought I would need it it was beter to treat the indentation etc. as wrong. Most people use pcdata correctly.
13:11 sri interesting
13:13 Akron So: I can live without it. Sorry. But thanks for implementing it anyway. If you think it makes the API ugly I am fine with trashing it.
13:14 Akron The rare case where it is still needed, one can still look into the datastructure directly.
13:15 Akron But I have a different proposal: How about a method returning an untrimmed ByteStream object? Could be fun for simple oneliners.
13:16 tholen42 joined #mojo
13:17 cosmincx joined #mojo
13:17 sri next you want bytestream objects for attributes ;p
13:17 sri at some point we have to stop with syntax sugar
13:18 Akron ByteStream objects for attributes ftw!
13:18 Akron ;)
13:18 Akron I just wanted to give the sometimes useful ->text(0) method more sexyness.
13:23 marcus sri: is the a supported way to keep the flash for an extra request?
13:24 marcus sri: for instance if you want to redirect
13:24 sri marcus: no
13:28 judofyr joined #mojo
13:34 crab extract values, set them again?
13:43 tholen42 joined #mojo
13:50 inokenty joined #mojo
14:07 alnewkirk marcus, yup, I attempt at a MongoDB ODM (got bored waiting for sri to give us one)
14:13 gtsafas joined #mojo
14:14 sri i never promised an ODM
14:14 gtsafas left #mojo
14:14 sri just a driver
14:14 gtsafas joined #mojo
14:14 elb0w weee irssi windows are fun
14:16 judofyr isn't there a MongoDB driver already?
14:16 alnewkirk oh
14:17 alnewkirk judofyr, yes but its not very good
14:17 judofyr how so? I'm just wondering what's between the MongoDB package and a full ODM
14:19 jnap joined #mojo
14:19 alnewkirk judofyr, same diff as DBI and DBIx::Class
14:19 vervain I'm not familiar with the term ODM... wa-is-it?
14:19 jnap object document mapper, I think
14:20 lammel2 see kiokudb for an example
14:20 vervain Got it... thanks.
14:27 judofyr alpha6: well, I'd consider DBIx::Class an ORM ;)
14:33 alnewkirk ORM == ODM
14:33 alnewkirk reverse, mainly
14:34 amoore joined #mojo
14:42 marcus alpha6: but not dbi.
14:42 purl not dbi is it..
14:42 marcus doh
14:43 marcus I actually don't want a ODM for MongoDB. Just a great driver
14:44 alnewkirk oh
14:55 sri discovered one more thing i don't like about mongodb
14:56 Foxcool joined #mojo
14:56 sri the wire protocol theoretically supports multiplexing, but mongodb handles all requests sequentially
14:56 crab the fastcgi problem
14:56 sri indeed
14:57 judofyr I still don't see the "cool thing" about MongoDB
14:57 sri it's fun to prototype apps with mongodb
14:58 sri no schema, powerful ad-hoc queries
14:59 judofyr it's fun until you need something JOIN-like
14:59 judofyr then you'll end up duplicating data or running manual joins…
15:00 sri i've built apps with plain key/value stores, it's not that bad
15:00 judofyr no, but it's annoying to realize "oh wait, I need to duplicate more data when I insert stuff"
15:01 judofyr with a relational model I just put data in, and I'm pretty sure I can get it out exactly how I want
15:03 lammel2 well document stores are just a different beast on what you can expect from storage
15:03 elb0w sri: you know what else is fun with mongo. Releasing your module :P
15:03 lammel2 it's more or less getting you the data, cool things like aggregates and stuff like that are more or less up to the application again
15:04 marcus I don't have any problems stuffing data into document stores, but they're harder to do crazy queries with
15:04 judofyr lammel2: indeed. it's not so much MongoDB, but document storages in general
15:04 judofyr marcus: yeah, that was what I meant: I spend more time thinking about how to put data in, so I can later get them out
15:05 marcus judofyr: I've seen plenty of horrible dbic schemas which make queries hell tho.
15:05 marcus sql I mean
15:05 judofyr sure
15:06 lammel2 It's easy to make even simple things plain wrong ;-)
15:06 judofyr but the relational model was *built* upon the idea that "all data is it an equal level" and should be easy to query/join
15:06 judofyr lammel2: I just find MongoDB … uninteresting. CouchDB is pretty nice, because it provides something *more* than just CRUD.
15:07 lammel2 but as we only model the real world, there is always some level of detail missing, so we pretty much keep on adding details as the app is growing
15:07 lammel2 both approches need to tackle this
15:07 marcus judofyr: did you see that the company behind couchdb abandoned it? :)
15:07 lammel2 document stores struggle here, as the "document" needs upgrading too
15:07 lammel2 SQL struggles as the schema needs to be upgraded
15:08 judofyr lammel2: that's more related to schema-less vs schema-full
15:08 lammel2 both have there pros and cons
15:08 lammel2 well actually it boils down to schema-less vs. schema-based
15:08 judofyr :)
15:09 sri judofyr: couchdb is ass backwards
15:09 lammel2 Let's get the religious wars going *hehe*
15:09 judofyr sri: ssa?
15:09 purl i heard ssa was *fast*. or Static Single Assignment
15:09 marcus bass akkars
15:09 lammel2 But prototyping with mongo is actually pretty coll and fast
15:09 lammel2 coll = cool
15:11 sri i've tried couchbase, planning queries in advance is not fun
15:11 lammel2 couchbase = couchdb?
15:11 sri it feels like having to use stored procedures for every query
15:11 sri couchbase = couchdb + membase hybrid
15:12 sri it's a solid design
15:12 sri just queries are really annoying
15:12 lammel2 ah ok, based on proofen technologies and trying to create the ueber-thingie ;-)
15:12 sri the hybrid totally works
15:13 sri they got rid of the rest api and replaced it with the memcached protocol
15:13 judofyr Riak also sounds pretty neat
15:13 sri persistence and replication is couchdb
15:13 lammel2 ah I see, membase *is* a key-value store
15:13 sri riak architecture is awesome… usability is a mess
15:13 lammel2 seems like we can't have it all at once
15:14 lammel2 but mongo is pretty close
15:14 lammel2 they only need to resolve the global lock issue, to not hinder the actual scalability
15:14 sri mongodb api + riak architecture = i would kill for it
15:14 judofyr sri: what do you mean by mongodb api? riak is pretty k/v…
15:14 lammel2 I don't see anything really wrong with mongos architecture
15:15 sri judofyr: riak is *a lot* more
15:15 lammel2 It's pretty sane for a document store (they never targeted key/value stores from what I know)
15:15 sri judofyr: problem is that only the k/v part is easy to use
15:15 lammel2 sri: Any specifices you don't like about the architecture?
15:16 judofyr sri: maybe that's why I've only heard about the k/v-part
15:16 judofyr :)
15:16 judofyr I haven't been able to try it properly
15:16 sri riak-search and secondary indexes could be great, but they sadly aren't
15:16 marcus I'd like to play with elasticsearch
15:16 judofyr yeah, I've heard about those, but I always thought they were built to work with k/v-data?
15:16 sri riak has pretty much all the features in place, just the api is unusable
15:17 sri judofyr: they can index json documents
15:17 judofyr nifty
15:19 sri 10gen just needs to get their act together and make mongodb rock solid
15:21 sri putting a nice api in front of riak is a much harder problem, and basho so far fails big time when it comes to ux
15:21 sri best client so far is ripple… and it's really not great
15:21 sri https://github.com/seancribbs/ripple
15:22 judofyr I just don't see where mongodb fits in all of this. if I want some fast in-memory database, I'd use Redis. if I need a general database, I'd use PostgreSQL. if I need something that's distributed, I'd use Riak or Couch…
15:22 sri it's the allround database you use to get started
15:23 sri when you don't know where exactly the journey will end
15:23 vervain mongodb fits in because it's marketing has generated the most buzz. ;-)
15:23 vervain s/'//
15:24 sri 10gen does a good job there, mongodb becoming extremely popular is a given
15:24 sri mysql of the nosql databases
15:24 judofyr I'd say postgresql is better if you don't know where exactly the journey will end
15:25 sri i'd say postgresql slows you down during development
15:25 sri maybe once your design stands
15:26 sri my favorite database api btw. is redis
15:27 sri wonder if a file based redis would work with ssd
15:27 sri guess we'll never find out… since file backends are all deprecated
15:28 judofyr sri: the thing about MongoDB is that suddenly you realize "damn, I need a join to get out the data"
15:31 sri judofyr: sharding generally limits your ability to use joins anyway, even with postgresql
15:31 lammel2 well for document stores you just fetch the other linked documentparts
15:32 sri i suppose if you're used to joins it takes a little getting used to, but you don't need to rethink too much once you start sharding
15:33 lammel2 as document stores have some extra performance to spend (as everything is indexed and just accessable through indices) you can loose some stakcing your info together again
15:33 mire_ joined #mojo
15:34 MojoGuest818 joined #mojo
15:34 MojoGuest818 From: http://networkedblogs.com/33Knp (26 hits)
15:34 lammel2 I usually only saw limitations when trying to use aggregate functions on the data I want to retrieve
15:35 lammel2 doing some groupb by, max, sum, min, blabla is just great in SQL and maps nativly into the relational concept
15:36 metaperl joined #mojo
16:14 alnewkirk dammit, i missed out on the conversation
16:14 alnewkirk judofyr, you couldn't be more wrong
16:14 judofyr alnewkirk: :)
16:14 judofyr I like being wron
16:14 judofyr g
16:15 alnewkirk firstly, stop looking at document databases with a relational database POV
16:15 metaperl joined #mojo
16:15 judofyr okay
16:15 judofyr so how should I look at it?
16:16 alnewkirk like a document database
16:16 alnewkirk like an object persistence layer (alot better than rdbms)
16:17 alnewkirk if you model your data properly, you don't need JOINS
16:17 judofyr ehm
16:17 alnewkirk yes, you should take some time to learn how to "do it right" (or as we say in rdbms', normalization)
16:18 * vervain grabs some popcorn.
16:19 MojoGuest110 joined #mojo
16:19 judofyr alnewkirk: how would you model this: a blog post has many comments. a comment must be verified before it is shown. the moderators wants a list of all yet-to-be-verified comments.
16:19 judofyr with an embedded document, it's easy to fetch the blog post with comments
16:19 judofyr but it's hard to show all the yet-to-be-verified comments (across all posts)
16:20 alnewkirk judofyr, srsyl? -- its not
16:20 alnewkirk comment document has a flag/key that determines whether its been verified
16:21 vervain would you then have to fetch all comments and then process them in the app to see if said key was set?
16:22 judofyr alnewkirk: and, how would the query look like?
16:23 alnewkirk ... db.posts.find({ "$exists" : { "comment.verified" : false } })
16:23 judofyr I'm only interested in comments; I don't want them grouped by posts
16:23 judofyr I want them sorted by time
16:25 alnewkirk ... db.posts.find({ "$exists" : { "comment.verified" : false } }, { "comment" : 1 }).sort({ "comment.date" : 1 });
16:26 alnewkirk ^^ the point is, it can be done, you to can learn how to do this
16:26 * alnewkirk shows judofyr mongodb.org
16:26 * vervain munches an other handful of popcorn.
16:27 vervain I have to lean a little toward judofyr's view... it doens't seem that you are doing anything 'easier' or more 'efficient' than traditional rdbms and sql queries at that point.
16:28 vervain But - you are flushing relational integrity.
16:28 alnewkirk [09:57] <@sri> it's fun to prototype apps with mongodb
16:28 alnewkirk [09:58] <@sri> no schema, powerful ad-hoc queries
16:28 MojoGuest991 joined #mojo
16:29 alnewkirk [11:28] <vervain> But - you are flushing relational integrity. -- [11:15] <alnewkirk> firstly, stop looking at document databases with a relational database POV
16:29 alnewkirk you're NOT
16:29 alnewkirk ... flushing relational integrity
16:30 alnewkirk embedded documents show a clear, logical and more natural relationship between data
16:31 judofyr alnewkirk: but the moment you add the ability to query, filter and delete from inside the embedded doc, you're actually working with a relational model
16:32 lammel2 It's also hard here to draw the line between embedding and creating a separate entity here
16:32 alnewkirk lammel2, 11:17] <alnewkirk> yes, you should take some time to learn how to "do it right"
16:32 lammel2 so this issue is shared between sql and nosql anyway, getting the model right is always hard and requires experience (meaning doing it wrong a few times to know whats right ;-)
16:33 lammel2 but once you have it you just save the intermediate ORM layer completely as the objects you create *are* already the ones persisted in the store (e.g. mongo)
16:33 alnewkirk "separate entity" is anything that "doesnt" have direct owner/ownership
16:34 alnewkirk ... the point is, MongDB (and other doc-dbs) are closer to true object persistence than traditional rdbms'
16:34 alnewkirk lets face it ...
16:34 judofyr alnewkirk: people tried this before RMDBs. just have a look at object- and network-databases. the reason RMDBs got popular was because people locked themselves into "storing data beneath other data so I can't easily work on it"
16:34 alnewkirk when we code we deal with objects
16:35 lammel2 well sharing comments for various types (e.g. a product view, a post, a profile) on a website, will require you to choose how to aproach that
16:35 alnewkirk using SQL to persist those objects means denormalizing our objects
16:35 alnewkirk etc
16:36 judofyr alnewkirk: yes, there is a mismatch, but that doesn't mean that the relational model is *bad*
16:37 alnewkirk i never said it was bad, just said that "it no longer fits the way we code and think about data"
16:37 alnewkirk IMHO
16:37 lammel2 well if you are using realtional data (e.g. doing a time tracking application) going the nosql way leads to some functions being done on the application side instead of the server side
16:38 lammel2 so in such a case, relational tables and sql engines have a clear advantage currently
16:38 lammel2 (unless I missed some improvements in what mongo or similar can do for me here)
16:38 vervain I build accounting software... I assure you that _we_ still code and think about data the rdbms way. ;-)
16:38 judofyr alnewkirk: the biggest mismatch here is that you still can't think of data in document stores as objects, because you still need to fetch them.
16:39 judofyr it doesn't e.g. solve the "partial object" problem
16:39 judofyr (if you load just one field on a document, how do you represent that?)
16:39 judofyr you still need to realize they are going to be serialized
16:40 alnewkirk vervain, wrong
16:40 abra__ joined #mojo
16:41 * vervain throws popcorn away.
16:41 vervain Prove it.
16:41 alnewkirk vervain, accounting software employs a accounting practice that is not rdbms-specific
16:42 vervain That sentence doesn't say anything.
16:42 vervain You are not wrong that accounting systems don't pre-meditated the data storage methodology.
16:42 alnewkirk accounting systems use transaction logs to maintain the utmost accuracy and that approach can be used in rdbms' and noSQL stores alike
16:42 vervain But I'm not sure if you're saying anything else.
16:43 alnewkirk judofyr, you're missing the point
16:43 alnewkirk you'd have to "fetch" from any persistence layer
16:43 judofyr yes
16:43 alnewkirk I just stated that doc-dbs feel and look more natural
16:45 judofyr and I said, that you still have several other mismatches between documents in a DB and local objects
16:45 judofyr so it's not like you can "fully think about objects"
16:45 alnewkirk no but its closer, which is all I ever said
16:45 judofyr I didn't claim you said otherwise…
16:45 judofyr so we both agree :)
16:45 alnewkirk :}
16:46 alnewkirk yes, .. for now
16:46 alnewkirk :}
16:46 judofyr hehe
16:47 judofyr alnewkirk: but don't you agree that embedded documents with query, filter support turns it pretty relational?
16:48 alnewkirk define relational?
16:49 tempire sri: not enough to have an educated opinion right off the bat
16:49 judofyr relational model: all data (tables) are considered equal and not grouped under each other
16:49 judofyr alnewkirk: ^
16:50 alnewkirk okay ... then no
16:50 tempire but what would really help is some sort of walk through of that area, written or graphical.  I'm sure marcus would concur.
16:50 judofyr alnewkirk: just saying that you can *query* them like they were in a relational model
16:51 judofyr alnewkirk: and isn't it ironic that you need these features (fetching, sorting internal data) in order to solve real problems?
16:52 alnewkirk the mongodb query syntax was designed to look and feel familiar but that doesn't mean the data storage and relationship model is similiar
16:52 judofyr relational model has nothing about data storage to do
16:52 alnewkirk exactly, which is why I seperated them with "and"
16:53 judofyr and what has query syntax to do with this?
16:54 abra joined #mojo
16:54 alnewkirk it seems you're making a claim (i think) that because of the way mongodb has designed its query language, that that somehow makes the approach similar to rdbms relational model
16:54 judofyr alnewkirk: it's not about the query language. it's about the *expressiveness* to the query language.
16:55 judofyr it means that it's a concept in the underlying model
16:55 judofyr i.e. it *does* make sense to query/filter embedded documents
16:56 alnewkirk if you only want a subset of the information, ofcourse
16:56 judofyr yes, and that's often a requirement
16:57 judofyr alnewkirk: I just don't find that very document-oriented (to search and filter data within the document).
16:57 alnewkirk more importantly, I can fetch a piece of data and have it return all its related data automatically
16:57 judofyr alnewkirk: no you can't. what about the Author who wrote the post? that's probably stored in another document.
16:58 alnewkirk "no" and "probably" -- maybe rethink that statement
16:59 sri tempire: aww
16:59 judofyr alnewkirk: "no" to "fetching one document gives me all related data"
16:59 alnewkirk i could explain to you the proper way to approach that, but not if you're already invested in not believing
16:59 judofyr alnewkirk: I'd be interested
16:59 judofyr but I don't "believe" in DBs
16:59 vervain Now it's boiled down to an argument of faith? ;-)
17:00 * tempire tempire thinks DBs are like the government.  necessary, but inherently evil.
17:00 marty Long live text documents
17:01 tempire long live berkeley db, the original key value store
17:01 vervain That's the part I struggle with... haven't we been here before?
17:01 alnewkirk judofyr, store the author seperately and also within the post document (only the author id/dbref with data specific to the post)
17:02 judofyr alnewkirk: ah, so we don't care about normalization anymore?
17:02 judofyr oh, only author id
17:02 judofyr sorry
17:02 judofyr my fault
17:02 alnewkirk exactly
17:02 tempire vervain: not at this scale.  that's what started the whole revolution.
17:02 alnewkirk ... continuing
17:02 judofyr alnewkirk: but what about "I can fetch a piece of data and have it return all its related data automatically" ?
17:03 alnewkirk judofyr, still true, ... even truer
17:03 vervain Fair... my conservative nature just wants noSQL to stay in the caching space.
17:03 judofyr alnewkirk: ehm? how? you need to fetch two docs?
17:03 alnewkirk judofyr, no you don't
17:03 judofyr alnewkirk: so what would you do?
17:03 alnewkirk (only the author id/dbref ***with data specific to the post***)
17:04 alnewkirk author doc might have login/pass, that is NOT specific to the post
17:04 judofyr alnewkirk: the name is pretty specific to the post
17:04 alnewkirk so include that
17:04 judofyr how?
17:04 MojoGuest699 joined #mojo
17:04 MojoGuest699 From: http://www.google.com/url?sa=t&amp;rct=j&am​p;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp​;ved=0CCAQFjAA&amp;url=http%3A%2F%2Fdev.xan​tus.org%2F&amp;ei=pG7vTuX6OtGd-QaE66jeDg&am​p;usg=AFQjCNGw6nZv0wO42uzUnHhWcD0vcKNULg (1 hits)
17:04 judofyr denormalize?
17:05 alnewkirk no, not entirely, because the ID/DBREF is there
17:06 alnewkirk ... and again, stop thinking about this with your rdbms brain
17:06 judofyr you're storing the same data twice; that's denormalization
17:06 judofyr it's not about "rdbms brain"
17:06 alnewkirk not neccessarily
17:06 judofyr it's about not storing the same data twice; worrying about updating it twice
17:07 alnewkirk no, think about transaction logs
17:07 judofyr transaction logs? :S
17:07 alnewkirk now you have a record of the author identity at that moment in time
17:07 judofyr alnewkirk: ah, but you don't always want that
17:07 alnewkirk what if the author changes his name and email
17:08 judofyr so the DB is forcing the choice
17:08 alnewkirk your rdbms wont reflect that because it only stores current state
17:08 alnewkirk judofyr, no mannnn
17:08 alnewkirk jesus
17:08 judofyr no, if I care about the history, I change my schema to accomplish that
17:08 alnewkirk the ID is there so if you want the current info, go query
17:08 judofyr alnewkirk: but I still need to worry about keeping it up to date
17:09 alnewkirk no you dont, wtf
17:09 judofyr okay, so we're back to "two queries" themn
17:09 alnewkirk remember -- i could explain to you the proper way to approach that, but not if you're already invested in not believing
17:10 judofyr alnewkirk: I need to either (1) keep the data in the Post up-to-date or (2) always do a manual join (fetch the Author data too), right?
17:11 alnewkirk how you model your data is up to you, ... those are approaches, there are also others
17:11 crab judofyr: nod, smile, and go do something more fun
17:12 * vervain nods, smiles, and goes to have more fun... reading Mojo Guides. :-)
17:13 judofyr crab: heh, this is a pretty good graph of the fun in this conversation: http://www.wolframalpha.co​m/input/?i=-x%5E2+%2B+100
17:13 judofyr (starting from x=0)
17:14 * tempire prefers to take the derivative outlook of conversations before 0
17:20 xaka joined #mojo
17:21 MojoGuest908 joined #mojo
17:21 MojoGuest908 From: http://www.google.com/url?sa=t&amp;rct=j&am​p;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp​;ved=0CCAQFjAA&amp;url=http%3A%2F%2Fdev.xan​tus.org%2F&amp;ei=pG7vTuX6OtGd-QaE66jeDg&am​p;usg=AFQjCNGw6nZv0wO42uzUnHhWcD0vcKNULg (2 hits)
17:21 MojoGuest908 /help
17:22 MojoGuest908 ?
17:23 sugar joined #mojo
17:24 MojoGuest446 joined #mojo
17:27 judofyr joined #mojo
17:39 GitHub24 joined #mojo
17:39 GitHub24 [mojo] kraih pushed 1 new commit to master: http://git.io/XoyBOQ
17:39 GitHub24 [mojo/master] fixed small memory leak in Mojo::IOLoop::Stream - Sebastian Riedel
17:39 GitHub24 left #mojo
17:42 sri oh, programming perl 4th edition has been delayed to february
17:48 MojoGuest372 joined #mojo
17:48 MojoGuest372 From: http://www.google.com/url?sa=t&amp;rct=j&am​p;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp​;ved=0CCAQFjAA&amp;url=http%3A%2F%2Fdev.xan​tus.org%2F&amp;ei=pG7vTuX6OtGd-QaE66jeDg&am​p;usg=AFQjCNGw6nZv0wO42uzUnHhWcD0vcKNULg (3 hits)
17:48 kaare joined #mojo
17:54 abra_ joined #mojo
18:02 jmhgtx_ joined #mojo
18:09 yaxar joined #mojo
18:10 noganex joined #mojo
18:12 GitHub141 joined #mojo
18:12 GitHub141 [mojo] kraih pushed 2 new commits to master: http://git.io/gTnq4A
18:12 GitHub141 [mojo/master] added "hello.pl" and "fast.pl" to example scripts - Sebastian Riedel
18:12 GitHub141 [mojo/master] fixed chmod - Sebastian Riedel
18:12 GitHub141 left #mojo
18:13 sri i use those apps for profiling, i suppose sharing them won't hurt
18:15 sri they cover different parts of the stack
18:24 sugar joined #mojo
18:36 sugar joined #mojo
18:50 ispeak joined #mojo
18:56 tempire marcus: that flash delay thing sounds like a useful plugin
18:57 marcus tempire: we just did $self->flash(message => $self->flash('message')); for now.
18:57 tempire how functional of you
18:58 sri hmm
18:58 sri sloccount doesn't work for tests without shebang :(
18:58 tempire wait, that works?
18:58 tempire two flash values at once?
18:58 tempire huh.  that's not functional at all.
18:58 sri that's how flash works
18:59 sri set is a different hash than get
18:59 mire_ joined #mojo
18:59 tempire oh
18:59 tempire er, doh.  nevermind.
19:00 * sri actually hates flash and wouldn't mind if we got rid of it
19:00 tempire I thought he meant in the same request, as opposed to chaining it in the next request.
19:00 marcus it's functional as in it works, and uses functions :)
19:00 tempire without flash, you'd have to build some custom session access every time.
19:00 marcus or methods you prefer.
19:00 sri don't you usually say pragmatic?
19:00 marcus sri: yes
19:00 marcus sri: I want to write a Mojolicious book.
19:01 tempire I want to be on the cover
19:01 sri tempire: like <%= delete session->{one_time_message} %>?
19:01 marcus I want tempire to be on the cover.
19:01 marcus In a peacock costume.
19:01 sri i want tempire on the cover too
19:01 sri with a unicorn hat
19:01 tempire I'LL TAKE THAT CHALLENGE
19:01 marcus which one?
19:01 tempire although I'm thinking more this one: http://www.kareyhelms.com/wp-cont​ent/uploads/2010/09/beard-hat.jpg
19:02 sri i want one of those for xmas!
19:02 marcus tempire: http://farm3.staticflickr.com/2482​/4043336091_c3b8d9e86b_z.jpg?zz=1 looks nice.
19:02 marcus like a cock in your forehead.
19:03 tempire sri: I'll bring you a hat at the first perl conference I see you at.
19:04 sri deal!
19:04 marcus sri: YAPC::EU 2012, amirite?
19:04 marcus sri: you are soo going.
19:04 sri a tophat and a monocle
19:04 marcus it's in effin' germany
19:04 ispeak joined #mojo
19:05 sri the other side of germany
19:05 tempire so far
19:05 marcus Even if I have to go to your parents' horse farm and dig you out :p
19:05 * marcus has a car.
19:05 tempire there may be other reasons
19:06 marcus tempire: yes, sri might be a brain in a jar.
19:06 tempire I'm convinced sri is either http://s1.static.gotsmile.net/images/201​1/10/17/south-park-wow_131886444669.jpg or http://3.bp.blogspot.com/-RZruZxuSKb0/TaUh5mo​2SZI/AAAAAAAAGL0/Md-x7dz3yIU/s1600/krang1.jpg or http://images.wikia.com/marveldatabase​/images/7/70/Mojo_(Mojoverse)_002.jpg
19:07 marcus anyways, it is my new years resolution for 2012 :-)
19:07 marcus tempire: I sure hope it is #1. Anyways, I have seen pictures. Old ones, but still.
19:08 tempire I did a search on the internet.
19:08 tempire all I saw was some dude in a band.
19:08 tempire I get the impression it's not him
19:09 * marcus remembers a picture with a gun.
19:09 tempire http://www.psichem.de/cv/cv1.php
19:11 marcus left #mojo
19:12 tempire lulz. image searching for sri's name  brings up http://t3.gstatic.com/images?q=tbn​:ANd9GcQvY8s0V6NBjl93aiBhdrfYtBc9-​xPTcQY_so7YenGYFwm91hWpj8edo6JzrQ
19:12 marcus joined #mojo
19:12 marcus http://www.kerbeborsche.betrunken​.org/pix/usr/sebastian_riedel.jpg :)
19:13 tempire sassy
19:15 yaxar sri is this you? https://secure.gravatar.com/avatar/3bd926​f51fd711cc99e6b846dc4bc56f?s=140&amp;d=ht​tps://a248.e.akamai.net/assets.github.com​%2Fimages%2Fgravatars%2Fgravatar-140.png
19:16 marcus yaxar: that is tempire
19:16 tempire that's a good looking fellow
19:16 yaxar oh i see
19:17 tempire marcus: I want to move to norway.  can I be one of those 18 year old interns?
19:17 marcus tempire: yes
19:18 marcus seems we'll be hiring our intern from 2 years ago next year
19:18 marcus he wants to move back to Norway.
19:18 marcus the guy who made nordaaker.com
19:19 tempire sweet.  free yellow cheese sandwiches?
19:20 marcus tempire: we do serve lunch, yeah :)
19:20 marcus Mostly linn makes an omelette or whatever.
19:20 marcus waffles and hotdogs on fridays ;-)
19:21 marcus and a drinkup last friday every month.
19:24 marcus sweet. github is sponsoring YAPC::NA - http://blog.yapcna.org/post/14445356727/githu​b-is-an-amazing-service-that-much-of-the-perl
19:24 marcus guess I scared sri into hiding :)
19:24 marcus or icecream and a movie, whatever.
19:25 tempire likely pizza
19:26 marcus I was also thinking he could be http://www.ninjaturtles.com/a​rtwork/profile_donatello.gif
19:27 sri BUSTED!
19:28 sri marcus: that photo is not me, but i have the exact same t-shirt :)
19:31 marcus sri: didn't you use to have a flickr account at some point?
19:31 sri i might have
19:31 marcus I remember you bought a DSLR
19:31 sri i even had a few photos of me up somehwere
19:32 sri just don't remember
19:32 sri actually liked the one of me with an assault rifle :)
19:33 marcus from the army, rite?
19:33 marcus with short hair.
19:33 sri yea
19:33 sri hope those are not lost
19:34 tempire you were in the army?
19:34 * sri nods
19:34 tempire http://www.sri.com/
19:34 sri marcus too if i remember right
19:35 marcus sri: for all of 6 months :)
19:35 marcus 3 months grunt service, 3 months as the webmaster of the north norwegian army.
19:35 marcus tempire: army service is mandatory in norway.
19:35 tempire I figured.
19:36 tempire only 6 months, though?
19:36 marcus but only like 80% serve these days
19:36 marcus tempire: normal service is 12 months.
19:36 tempire I suppose it's not a big deal
19:36 marcus tempire: they were grooming me for the whatsitcalled
19:36 marcus militia
19:36 sri it was mandatory in germany too until last year
19:37 marcus I was supposed to have an assault rifle at home until I was 40something and go on practice every year
19:37 marcus but I managed to get out of that :)
19:37 tempire what changed in germany?  that sort of change sounds like a major political shift
19:37 sri cutting costs
19:37 sri :)
19:39 sri operations abroad cost a lot, army had to become more professional
19:40 sri my little sister is a carreer soldier
19:44 * marcus is considering buying http://boardgamegeek.com/boardgame/545/kaleidos as a christmas gift
19:45 sri i want the new icon design book by hicksdesign for xmas
19:50 mercutioviz joined #mojo
19:50 marcus sri: I will order it for you tomorrow when it becomes available, merry christmas. msg me delivery address please.
19:52 sri :o
19:52 sri \o/
19:52 sri whois mojolicio.us
19:53 sri (not my address, but will reach me)
19:53 * marcus untargets the satelite.
19:56 marcus sri: added to todo for tomorrow :)
19:56 marcus Have a nice evening, gentlemen, I am off again for a bit.
19:57 sri and a fine evening to you, good sir!
19:58 * sri puts on tophat and runs off to the reddits
20:00 sri http://i.imgur.com/cGc6Y.jpg # looks legit
20:24 MojoGuest991 joined #mojo
20:54 elb0w why is it so hard to find a decent zombie wallpaper
20:56 elb0w LOL
20:58 tempire elb0w: http://zombiedolphin.com/
20:58 tempire hmm
20:58 tempire hmm
20:59 tempire sri: Mojo::IOLoop->server sets the accept event on the IOLoop singleton, which in turn passes responsibility of the connection to Mojo::IOLoop::Stream
20:59 tempire correct?
21:00 sri tempire: Mojo::IOLoop::Server
21:01 tempire right.  I forgot to mention that part.  the event is assigned to IOLoop::Server
21:02 sri client/server create handles, stream manages them
21:03 sri and ioloop carries the objects around
21:05 arpadszasz joined #mojo
21:09 sri it's all very little code when you ignore the deprecated parts
21:11 tempire It's just about understanding the flow.  It hasn't clicked yet.
21:11 sri just ask if there are any questions
21:12 tempire lulz.  the right questions are the hard part.
21:12 sri i think it's easiest to understand when you look at the Mojo::IOLoop::* synopsis
21:13 vervain Can Test::Mojo->post_form_ok accept a test name... I keep getting an "Odd number of elements error"
21:14 sri argument variations are always documented
21:16 sri tempire: the Mojo::IOLoop::* classes directly use the iowatcher api and are independent from ioloop
21:16 tempire vervain: I'm fairly sure some of the *_ok subs don't take test names.  it has to do with the variable amount of arguments that their non-testing counterparts accept.
21:16 sri (think that's important to understand the connections)
21:17 tempire the ones that do are indicated as such in the pod
21:17 tempire sri: that's part of what I'm trying to sort out.  how the iowatcher and ioloop/stream work together.
21:18 tempire or relate to each other, I should say
21:18 sri every ioloop carries an iowatcher
21:18 sri when you create server/client instances through ioloop they automatically get that one assigned
21:19 sri that's the connection
21:19 vervain tempire: Thanks
21:19 vervain Is there a way to get prove -v but without Mojolicious debug output?
21:20 bigbootay joined #mojo
21:21 tempire ooooh.  I see part of where my confusion lies.  I misread one of the lines and was thinking iowatcher was a singleton
21:21 sri ah
21:21 tempire I dyslexia'd singleton->iowatcher
21:22 sri only ioloop is really a singleton
21:22 sri and only the singleton ioloop ;p
21:22 vervain I've tried $t->app->log->level('error')... which works as expected with prove... but not prove -v. :-/
21:22 tempire yeah.  that makes sense.  I was trying to track down how two singletons at different levels could work together, and my brain segfaulted.
21:23 sri haha
21:25 sri vervain: MOJO_LOG_LEVEL=error
21:26 abra joined #mojo
21:28 vervain Ah yes... magic.
21:29 sri wrong
21:29 vervain How then are MOJO_LOG_LEVEL and app->log->level related?
21:29 sri the quote goes "Magic. Got it."
21:31 sri purl: no, got it is <reply> Magic. Got it.
21:31 purl OK, sri.
21:31 sri purl: got it?
21:31 purl Magic. Got it.
21:34 tempire it may take me a while to understand the weakens all over the place
21:34 sri for sure, i don't understand haf of them yet
21:34 sri *+l
21:36 tempire https://github.com/kraih/mojo/blo​b/master/lib/Mojo/IOLoop.pm#L267
21:36 tempire ?
21:37 sri $server instance is stored in $self
21:37 sri the closure results in a circular ref
21:38 tempire so wouldn't that mean weakening $self->{servers}->{$id}?
21:39 sri that would be messier
21:40 sri not even sure if it works
21:40 tempire messier in operation, or messier in aesthetic
21:40 sri don't think it would work, ref count on $server is not increased
21:40 sri just $self
21:41 tempire hmm
21:41 tempire maybe my understanding of ref counting is lacking
21:41 sri i'd ignore that part
21:41 sri it's unimportant for understanding the connections
21:42 tempire well I'm not spending the time for the hell of it.  It's part of the over-arching effort towards überness.
21:42 sri weaken is easier with normal circular refs, closures make them a headache
21:43 tempire what was the question you were pondering earlier?
21:43 tempire regarding IDs and such
21:44 sri if ioloop should keep carrying the server/client/stream objects
21:44 sri which is the reason ids exist
21:44 sri (ignoring timers)
21:45 sri useragent and daemon could theoretically carry those objects too
21:45 sri now they pass around ids
21:49 metaperl joined #mojo
21:55 tempire I understand the connections.  it's the puzzle of how it all fits together that I'm really after
21:55 tempire events are the bees knees
21:58 tempire I guess I shouldn't make that claim so authoritatively
21:59 tempire I understand the connections until such point that I make an error.  at that point, I claim the right to retroactively change my claim of understanding.
21:59 sri :)
22:00 tempire oh hey
22:00 purl que tal, tempire.
22:00 tempire I think something just clicked
22:00 tempire iowatcher
22:00 purl somebody said iowatcher was the layer below ioloop::* btw. which is the layer below ioloop
22:00 tempire polling
22:00 tempire handles
22:00 tempire _one_tick
22:01 tempire ooooooh.  emit_safe(accept => $handle)
22:02 tempire \o/
22:03 sri \o/
22:05 mercutioviz joined #mojo
22:14 vervain $0.02... the mojolici.us left and right page margins should collapse before the 'content' width.
22:20 marcus :)
22:20 * marcus zzz
22:20 GitHub100 joined #mojo
22:20 GitHub100 [mojo] kraih pushed 1 new commit to master: http://git.io/0bhI4A
22:20 GitHub100 [mojo/master] removed undocumented and untested args attribute from Mojo::IOLoop::Client and Mojo::IOLoop::Server - Sebastian Riedel
22:20 GitHub100 left #mojo
22:21 sri if anyone really cares about args, feel free to bring it back properly
22:22 sri but i want cold hard tests
22:26 mire_ joined #mojo
22:30 vervain Following Mojolicious::Guides::Growing... WELL STRUCTURED APPLICATION... I get a "Can't locate object method "new" via package "MyApp" at ..../5.14.1/Mojo/Server.pm
22:31 vervain Should Mojo::Base 'Mojolicious' provide new()?
22:34 vervain Whoops... it helps to remember to name modules .pm and not .pl... Right up there wiht if ( $foo = $bar ) { ... fail } ;-)
22:36 GitHub116 joined #mojo
22:36 GitHub116 [mojo] kraih pushed 1 new commit to master: http://git.io/8e8FDw
22:36 GitHub116 [mojo/master] removed undocumented and untested tls_args attribute from Mojo::IOLoop::Client and Mojo::IOLoop::Server - Sebastian Riedel
22:36 GitHub116 left #mojo
22:36 sri same as last commit, if you care send a proper pull request
22:38 rsimoes1 joined #mojo
22:40 ki0 joined #mojo
22:44 vervain \o/ My vacation/holiday has begun... finally... uninterrupted Mojo for 2 weeks. :-)
22:47 vervain Hmmm... still on 'WELL STRUCTURED APPLICTION" but the tests faile on unititialized $host UserAgent line 200.
22:50 vervain _connect { ...   $id ||= $self->_cache("$scheme:$host:$port"); ...}
22:53 sugar_ joined #mojo
22:55 vervain Ah... ok... I keep expecting the Guides to be somewhat of a walkthrough... but what I needed was the 'full' app way of initializing $t in tests... at the bottom of Growing.
23:06 sri yay for vacations!
23:06 sri Zzz
23:22 ispeak joined #mojo
23:46 MojoGuest825 joined #mojo
23:46 MojoGuest825 From: http://www.google.com/url?sa=t&amp;rct=j&amp;q=&a​mp;esrc=s&amp;source=web&amp;cd=10&amp;ved=0CGsQF​jAJ&amp;url=http%3A%2F%2Fdev.xantus.org%2F&amp;ei​=3cvvTpbKJ_PYiAK95ZT3CQ&amp;usg=AFQjCNGw6nZv0wO42​uzUnHhWcD0vcKNULg&amp;sig2=bH2CCaErL6yWIondIuHV7A (1 hits)
23:57 tempire sri
23:57 tempire get to it
23:57 tempire the metacpan entries
23:58 tempire vti's is the best, but they all lack a certain flair

| Channels | #mojo index | Today | | Search | Google Search | Plain-Text | summary