The web in a box - a next generation web framework for the Perl programming language

IRC log for #mojo, 2014-02-20

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

All times shown according to UTC.

Time Nick Message
00:06 rem_lex|pivo joined #mojo
00:08 mire joined #mojo
00:15 HtbaaPi joined #mojo
00:42 d4rkie joined #mojo
00:57 btyler joined #mojo
00:58 laouji joined #mojo
01:06 Stefan joined #mojo
01:16 Stefan joined #mojo
01:28 gnephiak joined #mojo
01:33 jb360 joined #mojo
01:53 bpmedley joined #mojo
01:59 * sri is glad nobody noticed how he screwed up Mojo::JSON::decode_json a little yesterday
02:11 klapperl joined #mojo
02:17 davido_ I didn't look at it until today, by which time you already had a new commit.
03:11 thowe joined #mojo
03:23 laouji joined #mojo
03:23 btyler joined #mojo
03:23 marty joined #mojo
03:23 drift joined #mojo
03:23 dotan joined #mojo
03:23 salparadise joined #mojo
03:23 jack joined #mojo
03:23 allison joined #mojo
03:23 phillipadsmith joined #mojo
03:23 elvis joined #mojo
03:23 batman joined #mojo
03:23 cfedde joined #mojo
03:23 ascent joined #mojo
03:23 Kundun joined #mojo
03:23 kwa joined #mojo
03:23 bowtie_ joined #mojo
03:23 bjoernfan joined #mojo
03:23 tempire joined #mojo
03:23 marcus joined #mojo
03:23 Lee joined #mojo
03:23 cleverfox joined #mojo
03:23 bowtie joined #mojo
03:23 andrefs joined #mojo
03:23 avkhozov joined #mojo
03:23 mgrimes joined #mojo
03:23 webart joined #mojo
03:23 tardisx joined #mojo
03:23 mikegrb joined #mojo
03:23 priodev joined #mojo
03:23 voegelas joined #mojo
03:23 Fatalnix joined #mojo
03:23 dj_goku joined #mojo
03:23 dabudabu joined #mojo
03:23 mil joined #mojo
03:23 Mikey joined #mojo
03:23 charsbar___ joined #mojo
03:23 zanity joined #mojo
03:23 preaction joined #mojo
03:31 jberger joined #mojo
03:32 jberger o/
03:37 jberger joined #mojo
03:38 jberger trying convos again
03:38 jberger hmmmm, I keep carping up the database
03:46 KindTwo joined #mojo
03:46 jberger joined #mojo
03:46 jberger ok one more time
03:46 jberger hey that looks better
03:49 thowe good evening, jberger
03:59 jberger o/
04:03 hesperaux__ joined #mojo
04:16 jberger sri: if you are around, I had another idea
04:17 jberger allow passing an arrayref of initial arguments to Mojo::IOLoop->steps
04:17 jberger Mojo::IOLoop->steps([$arg, $otherarg], sub { ... }, sub { ... })
04:18 jberger easy enough to do
04:18 jberger benefits: you wouldn't have to close over initial arguments
04:19 jberger then with that, you could have reusable steps kept elsewhere
04:19 jberger like user lookup
04:19 asarch joined #mojo
04:28 sujithm joined #mojo
04:28 irq joined #mojo
04:38 sri jberger: the documentation for Mojo::IOLoop::delay is already hard to understand
04:39 jberger yeah, I'm stumbling on writing the documentation clearly as it is
04:43 laouji joined #mojo
04:46 jberger sri: http://pastie.org/8750787
04:55 sri i think for it to be considered we would have to deprecate the current Mojo::IOLoop::delay arguments and go my $delay = Mojo::IOLoop->delay->steps(...);
04:56 sri personally, if anything, delays should become simpler to understand
04:56 sri *i think
04:59 jberger sri: patch with tests http://pastie.org/8750811
04:59 laouji joined #mojo
04:59 jberger eh, I would rather leave it the same than change it up
05:03 jberger the reason of course is that currently you can do ->steps( sub { ... }, \&step2, \&step3 ... ) but you can't do the same for the first, because you are probably closing over inputs
05:08 bpmedley Would it be simpler for the $delay object to have an argv attribute?
05:10 jberger bpmedley: it might be easier to document, but you might have to work to not leak
05:11 jberger depending on the longevity of your $delay
05:16 jberger sri: ok, if that makes thing too hard, I think I have come up with another pattern which will let me reuse steps
05:17 jberger define a function with arguments that returns a step
05:18 bpmedley http://pastie.org/8750843
05:20 jberger bpmedley: I don't think it can work like that
05:20 bpmedley Why?
05:21 sri still doesn't really address my concerns
05:21 sri i have nothing against the pattern (i think), i want clever documentation that makes it *look* simple
05:22 sri stuff like "the first step can be replaced with an array reference of arguments that are passed to the second step"... not a tacked on section with more fluff... and Mojo::IOLoop::delay rewritten to say arguments instead of callbacks and the like
05:23 jberger bpmedley: there is a stack of argvs internally, it's not just one accessor
05:23 sk joined #mojo
05:23 sri anyway, i actually wanted to stay out of feature discussions for a bit :o
05:23 jberger "Just when I thought I was out, they pull me back in!!!"
05:24 sri it's all fun and games until i really burn out again and vanish for a few months ;p
05:24 bpmedley jberger: Can you show me what you meant?
05:24 sri happened a few years back... and i left for ruby land
05:25 jberger bpmedley: https://github.com/kraih/mojo/blob/master/lib/Mojo/IOLoop/Delay.pm#L38
05:25 bpmedley sri: I'll send you a beer.. :)
05:25 jberger sri: we would never wish that on anyone!
05:25 sri ...which then resulted in me starting mojolicious... so i'm not sure where i'm going with this :D
05:26 jberger haha
05:26 jberger anyway, its pretty much smooth sailing right now, this is just extra stuff
05:26 jberger actually, I withdraw my suggestion
05:26 jberger I'm happy enough with my other pattern
05:26 bpmedley jberger: I don't see how the argv and args step on one another.
05:27 sri you can always put it up for a vote
05:27 sri my only worry was documentation
05:27 jberger mine too
05:28 jberger I'm just starting to use Mandel for a side project, and steps are invaluable there
05:28 jberger and I think reusing steps (like looking up a user for example) is going to be a big win
05:28 sri i wouldn't be surprised if you could steal patterns from the node.js folks actually
05:29 jberger I should look at that (when I get that time that I have)
05:29 jberger I guess its that time now, right :-P
05:29 sri async.js especially is very heavily used there and has countless patterns https://github.com/caolan/async
05:33 bpmedley jberger: http://pastie.org/8750877 <-- Have any thoughts on this, or do you want to drop the discussion?
05:34 jberger bpmedley: I prefer to get the input args in @_, the only problem is that you cannot inject the arguments for the first step
05:34 jberger then again, your idea might solve the $delay->begin(0) problem
05:35 jberger do you have a patch for the implementation?
05:35 bpmedley http://pastie.org/8750886
05:35 sri that attribute looks like complexity for no real gain
05:36 jberger wait, so the argv is the same for each step?
05:36 bpmedley Hrmm
05:36 jberger that's not right
05:37 jberger if argv contained the return values from the last step I might be more inclined, because it might solve the $delay->begin(0) problem
05:37 jberger but in general I like the design as-is, I just want to be able to start with some args
05:38 jberger no, I think I'm trying to solve a problem that doesn't really exist
05:39 jberger I withdraw my proposal
05:40 sri i see the first step more as a setting things up step, for the next few steps
05:41 * sri shrugs
05:41 * jberger pushes sri away from the channel before he burns out
05:42 * sri has smoke coming out of his ears
05:42 jberger damn, someone dump a bucket of water over sri
05:54 sri http://pastie.org/8750936 # since we are throwing around wils patches ;p
05:55 Vandal joined #mojo
05:56 jberger sri: if that works, then maybe I don't understand what the $id does
05:56 sri s/wils/wild/
05:57 sujithm joined #mojo
05:57 sri order of arguments if you have multiple begins
05:58 jberger oh, so that would work
05:58 jberger cool
06:00 jberger except that once again, it doesn't really provide any extra functionality except on the first step
06:00 bpmedley Neat.  You might make the first argument to Mojo::IOLoop an optional ARRAY ref that initializes args.  Would allow for: my $delay = Mojo::IOLoop->delay([4, 5, 6], @steps);
06:00 jberger bpmedley: AAAAGH
06:01 sri lol
06:01 * jberger transfers agression and beats purl with a 2x4
06:01 * sri sets purl on fire
06:01 * purl basks in the warm glow HEY WAIT A MINUTE
06:02 jberger sri, I'm ok with your patch if you want, it certainly is easier to document
06:03 sri i'm not proposing it ;p
06:03 jberger hahaha
06:03 sri it would have to pass a vote to get in
06:04 sri maybe someone finds some extra functionality
06:05 jberger it is a nicely consistent implementation
06:05 jberger maybe something will come to me overnight, but I still can't see any reason to have it after the first step
06:09 sri yea, it's mostly a waste
06:14 KindTwo joined #mojo
06:20 denisboyun joined #mojo
06:23 basiliscos joined #mojo
06:29 sri might just as well have something like $delay->seed(1, 2, 3)->steps(...) to set the arguments of the first step directly (even better for documentation)
06:31 sri current worst case is not *that* bad though... $delay->steps(sub { step1(shift, $foo, $bar) }, \&step2, \&step3)
06:31 sri for the few cases when you actually need it
06:32 stl joined #mojo
06:43 sujithm joined #mojo
06:48 jberger anyway, this is where I'm at
06:48 jberger https://github.com/jberger/MojoForum/blob/master/lib/MojoForum.pm
06:53 KindOne joined #mojo
06:57 Stefan joined #mojo
07:00 bpmedley http://pastie.org/8751079 <-- jberger would syntax like this be helpful?
07:09 ghandi|work joined #mojo
07:24 KindTwo joined #mojo
07:38 basiliscos joined #mojo
07:43 rawler joined #mojo
07:49 dod joined #mojo
07:59 Andy2 joined #mojo
08:05 eseyman joined #mojo
08:05 sujithm joined #mojo
08:11 dod joined #mojo
08:15 bpmedley Please disregard that pastie.  It's non-sensical.
08:27 ver joined #mojo
08:29 trone joined #mojo
08:34 odc joined #mojo
08:41 Jonis should put mojoconf in the topic :)
08:55 maxhq joined #mojo
09:05 laouji joined #mojo
09:11 basiliscos joined #mojo
09:16 laouji joined #mojo
09:20 batman jberger: what did you mean about "little baby has grown"...?
09:21 batman are you happy with the Mandel API btw or do you still want to change the foreign_key?
09:23 hrupp joined #mojo
09:23 batman s/MojoForum/Toady/; ? :)
09:24 laouji joined #mojo
09:33 irq joined #mojo
09:40 fhelmber_ joined #mojo
09:54 KindOne joined #mojo
10:06 skullbocks joined #mojo
10:41 GabrielVieira joined #mojo
10:54 GabrielVieira joined #mojo
10:55 Jonneh joined #mojo
11:06 sujithm joined #mojo
11:07 nikita joined #mojo
11:51 rem_lex joined #mojo
11:56 GabrielVieira joined #mojo
11:57 Stefan joined #mojo
11:59 GabrielV_ joined #mojo
12:03 maxhq joined #mojo
12:48 jberger batman: "little baby" I was referring to was MangoModel
12:48 batman ah! right :)
12:48 jberger which for the uninformed reader was the basis of Mandel before batman++ ran with it and made it useful
12:49 batman thanks :)
12:49 batman but is the relationships useful or messed up?
12:49 batman is, are, is, are, is, are, is, are, is, are :(
12:49 jberger useful, I just had to get it right
12:50 jberger you had it right
12:51 jberger batman: did you see my toy example? https://github.com/jberger/MojoForum
12:53 batman looking at it now
12:53 batman i hope you're right that i had it right... i seriously still have no clue :(
12:54 batman https://github.com/jberger/MojoForum/blob/master/lib/MojoForum/Model/Thread.pm # i think i've done something right, by looking at this :)
12:54 batman looks really easy
12:57 basiliscos1 joined #mojo
12:58 batman use MojoForum::Model (); # does it export anything..?
12:59 batman Mojo::IOLoop->timer(0 => sub { $end->(undef, undef, $user) }); # and why don't you just do $dela->begin(0)->(undef, $user); ?
12:59 batman jberger: ^
13:01 sujithm joined #mojo
13:07 jberger batman: that is frowned upon, no?
13:07 jberger that was how I originally had it
13:08 GabrielVieira joined #mojo
13:09 basiliscos joined #mojo
13:13 batman why is it frown upon?
13:21 Jonneh joined #mojo
13:21 Fatalnix jberger: whatd you break now?
13:26 basiliscos1 joined #mojo
13:29 batman jberger: too bad your bot doesn't pick up Mandel releases :)
13:30 batman POSTing upload for Mandel-0.12.tar.gz to https://pause.perl.org/pause/authenquery
13:32 batman jberger: https://metacpan.org/pod/release/JHTHORSEN/Mandel-0.12/lib/Mandel/Document.pm#data
13:33 mire joined #mojo
13:33 yko joined #mojo
13:33 GabrielV_ joined #mojo
13:33 marty joined #mojo
13:39 hrupp joined #mojo
13:47 skullbocks joined #mojo
13:47 d4rkie joined #mojo
13:50 jack joined #mojo
13:53 Fatalnix oh... hello Morbo, nice to meet you
13:53 hrupp joined #mojo
13:53 rj11 I could use some advice. When using DBIx::Class with Mojolicous, would you pass the ORM-object into a template directly?
13:54 GabrielVieira joined #mojo
13:55 rj11 E.g. $self->stash(user => $user) or $self->stash(user_name => $user->name, user_group -> $user->group->title)
13:55 marty joined #mojo
13:55 marty joined #mojo
13:55 mil I would go with the object for sure
14:01 rj11 mil: I've done so in the past, but then I started thinking about it.
14:02 rj11 mil: Passing the object directly makes the template tightly coupled to the model. (And $user->category->title is close to doing controller stuff in the template, since ->category may perform a SELECT.)
14:04 GabrielV_ joined #mojo
14:07 bpmedley jberger: http://pastie.org/8752115 <-- If this construct was supportable, would it be useful?
14:07 batman rj11: it's always tightly coupled anyway. just go with it until you need to loosen up :)
14:08 batman please stop with the timer(0, ...) stuff. it's what delay does internally anyway
14:08 batman (if it needs to)
14:18 d4rkie joined #mojo
14:20 Stefan joined #mojo
14:24 sh4 joined #mojo
14:27 rj11 Okay, I'll go with object-in-stash approach.
14:30 basiliscos joined #mojo
14:31 GabrielVieira joined #mojo
14:35 bpmedley batman: I have a patch with slighlty modified internals.  I was just messing around; however, the end result might be simpler.
14:37 batman bpmedley: patch for what?
14:38 batman rj11: my philosophy is make it as simple as possible until you have to make it hard.
14:38 bpmedley Sorry, were you referring to my earlier post when you referenced the "timer(0, ...)" stuff?
14:38 batman but know that you can support future complicated requirements :)
14:39 batman bpmedley: yeah. but mostly to jberger... not sure what you're trying to pull off
14:41 rj11 batman: I like to think of the template as a standalone representation of something with a set of input requirements. :)
14:42 bpmedley batman: I'm curious if Mojo::IOLoop->timer(3 => $end->(3)); is supportable, rather than: 3 => sub { $end->(3) }.  Does that make sense?
14:44 punter joined #mojo
14:44 GabrielV_ joined #mojo
14:45 batman bpmedley: the first one will call &$end and the return value will be given as the second argument to timer().
14:45 btyler joined #mojo
14:46 bpmedley I agree. I'd be happy to show you my patch; however, it probably needs some work.
14:46 batman rj11: i support that way of thinking 100%
14:49 bjoernfan joined #mojo
14:51 GabrielVieira joined #mojo
14:51 fhelmber_ joined #mojo
14:53 rj11 rj11: So the template to display user requires "username", "group", and so on.
14:53 rj11 batman: That was meant for you.
14:57 batman not sure what to reply
14:57 batman was it a question?
15:00 rj11 batman: Then the controller is supposed to populate the stash with username, group, etc. Instead of just throwing some lower level representation of the data.
15:01 batman gut feeling decides what is right for me.
15:01 batman i think $row->r1->r2->col1 probably
15:01 batman oops
15:01 rj11 I guess it's a case of "the easy/fast way" versus "the decoupled/'correct' way". :)
15:01 batman i think $row->r1->r2->col1 is probably too much for the template imo
15:01 batman yeah, and i always go for the easy way as long as the encapsulation allow it.
15:02 batman meaning, if the template is reusable or i have a frontend guy working on it, i would probably pass on more objects in stash
15:03 fhelmber_ joined #mojo
15:04 fhelmber_ joined #mojo
15:07 webart joined #mojo
15:13 webart joined #mojo
15:14 GabrielVieira joined #mojo
15:16 gryphon joined #mojo
15:17 rj11 batman: That settles it, it's quite possible some front end guy will polish the templates in the future.
15:23 arthas joined #mojo
15:24 fhelmber_ joined #mojo
15:28 batman :)
15:28 batman (or woman)
15:28 GabrielV_ joined #mojo
15:37 skullbocks joined #mojo
15:41 fhelmber_ joined #mojo
15:44 fhelmber_ joined #mojo
15:51 skullbocks joined #mojo
15:55 fhelmber_ joined #mojo
15:57 basiliscos joined #mojo
16:08 webart joined #mojo
16:09 fhelmber_ joined #mojo
16:26 meshl joined #mojo
16:39 rj11 batman: Of course, unfortunately there are no female front enders where I work.
16:39 rj11 :)
16:42 fhelmber_ joined #mojo
16:50 punter joined #mojo
16:55 mire joined #mojo
16:56 bluescreen joined #mojo
16:56 asarch joined #mojo
16:57 Stefan joined #mojo
17:06 fhelmber_ joined #mojo
17:10 batman too bad.
17:12 webart left #mojo
17:35 cfedde beer made me the man I am today.
17:40 sujithm joined #mojo
18:06 marty joined #mojo
18:17 hummeleBop joined #mojo
18:22 skullbocks joined #mojo
18:24 GabrielVieira joined #mojo
18:32 marty joined #mojo
18:41 Stefan joined #mojo
18:54 mire_ joined #mojo
19:03 GabrielV_ joined #mojo
19:09 GabrielVieira joined #mojo
19:13 GabrielV_ joined #mojo
19:21 GabrielVieira joined #mojo
19:32 dod joined #mojo
19:47 GabrielVieira joined #mojo
20:01 Jonneh joined #mojo
20:17 Stefan joined #mojo
20:54 Stefan joined #mojo
20:59 trone joined #mojo
21:05 Stefan joined #mojo
21:17 Stefan joined #mojo
21:34 meshl joined #mojo
21:43 Stefan joined #mojo
21:44 lukep joined #mojo
22:47 da5id joined #mojo
22:48 ralesk_ joined #mojo
22:49 sujithm joined #mojo
22:49 gryphon joined #mojo
22:49 KindOne joined #mojo
22:49 Andy2 joined #mojo
22:49 stl joined #mojo
22:49 hesperaux__ joined #mojo
22:49 drift joined #mojo
22:49 dotan joined #mojo
22:49 salparadise joined #mojo
22:49 allison joined #mojo
22:49 phillipadsmith joined #mojo
22:49 elvis joined #mojo
22:49 batman joined #mojo
22:49 cfedde joined #mojo
22:49 ascent joined #mojo
22:49 Kundun joined #mojo
22:49 kwa joined #mojo
22:49 bowtie_ joined #mojo
22:49 tempire joined #mojo
22:49 marcus joined #mojo
22:49 Lee joined #mojo
22:49 cleverfox joined #mojo
22:49 bowtie joined #mojo
22:49 andrefs joined #mojo
22:49 avkhozov joined #mojo
22:49 mgrimes joined #mojo
22:49 tardisx joined #mojo
22:49 mikegrb joined #mojo
22:49 priodev joined #mojo
22:49 voegelas joined #mojo
22:49 Fatalnix joined #mojo
22:49 dj_goku joined #mojo
22:49 dabudabu joined #mojo
22:49 mil joined #mojo
22:49 Mikey joined #mojo
22:49 preaction joined #mojo
22:49 charsbar___ joined #mojo
22:49 icenine joined #mojo
22:49 robinsmidsrod joined #mojo
22:49 rj11 joined #mojo
22:49 phips joined #mojo
22:49 go|dfish joined #mojo
22:49 akiym joined #mojo
22:49 bd joined #mojo
22:49 moritz joined #mojo
22:49 DaTa joined #mojo
22:49 lestrrat joined #mojo
22:50 Stefan joined #mojo
22:50 hesperaux_ joined #mojo
22:50 lukep joined #mojo
22:50 meshl joined #mojo
22:50 marty joined #mojo
22:50 skullbocks joined #mojo
22:50 basiliscos joined #mojo
22:50 bjoernfan joined #mojo
22:50 rem_lex joined #mojo
22:50 bpmedley joined #mojo
22:50 DaniBunny joined #mojo
22:50 davido_ joined #mojo
22:50 sjn joined #mojo
22:50 Phil21_ joined #mojo
22:50 bc547 joined #mojo
22:50 Dandre joined #mojo
22:50 cstamas joined #mojo
22:50 jamesw joined #mojo
22:50 firnsy joined #mojo
22:50 inokenty joined #mojo
22:50 ivan joined #mojo
22:50 genio joined #mojo
22:50 Tiger joined #mojo
22:50 ioguix joined #mojo
22:50 omega joined #mojo
22:50 Zx3 joined #mojo
22:50 alnewkirk joined #mojo
22:50 cooper joined #mojo
22:50 snap_ joined #mojo
22:50 ashleydev joined #mojo
22:50 Foxcool joined #mojo
22:50 suy joined #mojo
22:50 stephan48 joined #mojo
22:50 bjakubski joined #mojo
22:50 bzero joined #mojo
22:50 mishantil joined #mojo
22:50 sri joined #mojo
22:50 bayashi joined #mojo
22:50 mtj joined #mojo
22:50 Sjors joined #mojo
22:50 crab joined #mojo
22:50 mfontani joined #mojo
22:50 memowe joined #mojo
22:50 edeca joined #mojo
22:50 diegok joined #mojo
22:50 augensalat joined #mojo
22:50 stokachu joined #mojo
22:50 sawtooth joined #mojo
22:50 bobkare joined #mojo
22:50 caeles joined #mojo
22:51 purl joined #mojo
22:53 sujithm joined #mojo
22:53 gryphon joined #mojo
22:53 KindOne joined #mojo
22:53 Andy2 joined #mojo
22:53 stl joined #mojo
22:53 drift joined #mojo
22:53 dotan joined #mojo
22:53 salparadise joined #mojo
22:53 allison joined #mojo
22:53 phillipadsmith joined #mojo
22:53 elvis joined #mojo
22:53 batman joined #mojo
22:53 cfedde joined #mojo
22:53 ascent joined #mojo
22:53 Kundun joined #mojo
22:53 kwa joined #mojo
22:53 bowtie_ joined #mojo
22:53 tempire joined #mojo
22:53 marcus joined #mojo
22:53 Lee joined #mojo
22:53 cleverfox joined #mojo
22:53 bowtie joined #mojo
22:53 andrefs joined #mojo
22:53 avkhozov joined #mojo
22:53 mgrimes joined #mojo
22:53 tardisx joined #mojo
22:53 mikegrb joined #mojo
22:53 priodev joined #mojo
22:53 voegelas joined #mojo
22:53 Fatalnix joined #mojo
22:53 dj_goku joined #mojo
22:53 dabudabu joined #mojo
22:53 mil joined #mojo
22:53 Mikey joined #mojo
22:53 charsbar___ joined #mojo
22:53 preaction joined #mojo
22:53 rhaen joined #mojo
22:57 mst joined #mojo
23:04 da5id joined #mojo
23:09 paladinn joined #mojo
23:11 marty joined #mojo
23:23 skullbocks joined #mojo
23:27 jberger_ joined #mojo
23:39 s1037989 joined #mojo
23:40 s1037989 Is it possible to redirect to a not_found from within a template?
23:42 zM joined #mojo
23:44 tempire It's certainly not a good idea
23:45 Jonis why would you want to?
23:46 s1037989 I don't any more now that I know it's not a good idea.  Thanks!
23:46 s1037989 It's perfectly easy for me to redirect within the controller.
23:48 Stefan joined #mojo
23:48 Jonis s1037989: you should check out the concept of model view controller (MVC)
23:49 s1037989 Yep.  I'm familiar.  Just wasn't sure that this portion I was looking to was V or C.  :)  Thanks for the pointer!
23:50 Jonis :)
23:58 cfedde joined #mojo

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