Camelia, the Perl 6 bug

IRC log for #mojo, 2011-04-07

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

All times shown according to UTC.

Time Nick Message
01:41 keith_ joined #mojo
01:45 keith_ is now known as keith-home
02:03 Alias joined #mojo
02:05 Alias__ left #mojo
02:26 justin joined #mojo
02:27 justin is it possible to install mojolicious::lite in a place where you can't run sudo/curl?
02:27 justin i.e. add a file to the tarball you hand someone to install?
02:50 tempire justin: You mean the mojolicious distribution?
02:50 tempire curl -L cpanmin.us | perl - -L mycpandir Mojolicious
02:51 tempire or, if you have cpanm installed... "cpanm -L mycpandir Mojolicious"
02:51 justin I mean if you can't necessarily do that
02:52 justin I dont know the final destination of this program
02:53 justin so I don't know if I'll be able to get to a command line at the hosting location
02:53 tempire ah, I see you specified no curl.
02:53 tempire My bad
02:54 tempire Do you know the platform?
02:54 justin it's ok - that would be a great answer if I wasn't looking for the inverse of it
03:06 dku joined #mojo
03:13 justin well, installing via cpanmin.us is slick, at least
03:17 dku sri: http://test.phenona.com:3452/ :)
03:23 tempire oh, there you go, justin
03:23 tempire just use phenoma when it goes live
03:26 justin is there any sort of additional insurance available for that site?
03:27 justin you know... a phenona Rider?
03:27 justin :)
03:27 justin I've been waiting all day to make a joke of such good quality
03:27 tempire lulz
03:27 tempire :)
03:52 josh left #mojo
03:53 josh joined #mojo
05:03 mephist joined #mojo
05:33 ysyrota joined #mojo
05:48 arpadszasz joined #mojo
05:56 mephist left #mojo
06:16 kaare joined #mojo
06:33 koban joined #mojo
06:35 Christian joined #mojo
06:35 Christian morning
06:36 fhelmber_ joined #mojo
06:42 Foxcool joined #mojo
06:42 koban hi ppl!
06:54 koban left #mojo
06:54 marcus ouch
06:54 AmeliePoulain joined #mojo
06:54 sri good morning fellow creatures of the night
06:55 sri dku: sweet... Server: Mojolicious (Perl)
06:55 sri \o/
06:56 sri i guess that means you have a configurable server start script
06:56 koban joined #mojo
06:56 sri very nice, that's how you beat dotcloud
06:56 sri they are going with a static uwsgi setup
07:00 Christian left #mojo
07:03 breaker313 joined #mojo
07:04 fhelmber_ left #mojo
07:04 fhelmber_ joined #mojo
07:07 Christian joined #mojo
07:09 jamesw left #mojo
07:14 mephist joined #mojo
07:16 perlrocks Twitter: "Looks like there will be quality cloud hosting for #perl available very soon. :) http://t.co/8BbwBOc #mojolicious" --kraih http://twitter.com/kraih/status/55891779639181312
07:17 sri dku: hope you don't mind :)
07:22 marcus this is already public.
07:22 koban left #mojo
07:22 koban joined #mojo
07:22 jamesw joined #mojo
07:37 crab joined #mojo
07:38 crab hi.
07:38 crab is after_static_dispatch supposed to run *AFTER* after_dispatch?
07:39 marcus crab: sounds wrong
07:40 crab that's what i thought too. but that seems to be what's happening.
07:44 sri after_dispatch is bound to ->rendered
07:44 crab sri: i can see that in the code, but maybe i don't understand the consequences
07:45 crab will it depend on what i'm doing which hook is run first?
07:45 sri the reason for this is delayed rendering (long polling and stuff)
07:46 sri basically after_dispatch will happen when we get a signal that content generation is finished
07:46 sri so for the static dispatcher it can happen before after_static_dispatch
07:47 crab ah. since i do no delayed rendering, i can count on after_static_dispatch being last?
07:47 sri no
07:47 sri not at all
07:48 sri after_static_dispatch should only be last if the static dispatcher matches
07:48 crab er, yes. of course. ... being last for a static file.
07:49 sri i'm not sure if you can count on it though, the dynamic nature of after_dispatch makes it rather hard to follow
07:51 * crab adds the extra if needed to solve the problem, then.
07:52 sri i suppose i would name it after_rendering these days
07:53 sri or actually split after_dispatch and after_rendering into two events
07:53 gslin left #mojo
07:54 sri i've also thought about higher level hooks
07:55 sri like after_exception and after_not_found
07:57 crab hmm.
07:58 crab aha. so after_static_dispatch is called even when the static dispatcher doesn't match.
07:58 sri right
07:58 sri no hook depends on stuff like matching
07:59 crab sri: what would you advise to detect if the response was from the static dispatcher?
07:59 crab i am trying to set long expires on static things and short for dynamic things
07:59 sri after_static_dispatch obviously
08:00 crab no, i have to set headers in both cases.
08:00 sri ?
08:00 sri just check for status in an after_static_dispatch
08:00 crab ah, that's it. thanks.
08:07 GitHub109 joined #mojo
08:07 GitHub109 mojo: master Sebastian Riedel * 5da2c52 (1 files in 1 dirs): pod tweaks - http://bit.ly/gaZmbT
08:07 GitHub109 left #mojo
08:07 sri hope that makes it more clear
08:09 crab thanks.
08:09 sri lol, hashed passwords illegal in france
08:10 sri http://yro.slashdot.org/story/11/04/07/​0212222/France-Outlaws-Hashed-Passwords
08:11 moritz can't you just hand over the hashed password if the authorities demand it? :-)
08:11 sri nope, you need to be able to give them the plaintext password
08:13 crab how ridiculous.
08:13 moritz it shows just how little the politicians actually understand about technology
08:14 crab btw, is there some trick to making nginx compress proxied responses other than "gzip_proxied any"?
08:15 moritz if I were to operate a service in france, I'd keep the passwords in the database hashed, and keep a log of the passwords, and encrypt each line of that log with a public key
08:15 moritz and have the private key only on a separate machine
08:15 marcus why would you operate a service in france?
08:15 marcus :p
08:16 moritz marcus: 65M potential customers
08:17 marcus there's more than a billion in china, but I still wouldn't operate a service there
08:17 moritz mais je parle un petit peux francais
08:26 crab ah, types.
08:38 bosphorus left #mojo
08:38 spleenjack joined #mojo
08:46 metaperl left #mojo
08:50 GitHub91 joined #mojo
08:50 GitHub91 mojo: master reezer * cbdd39a (1 files in 1 dirs): MIME type for WOFF, supported by all recent browsers
08:50 GitHub91 mojo: master Sebastian Riedel * 383c1bd (1 files in 1 dirs): cleanup
08:50 GitHub91 mojo: master commits 5da2c52...383c1bd - http://bit.ly/iencHx
08:50 GitHub91 left #mojo
08:53 marcus doggie goes WOFF
08:54 * sri gives marcus a treat
08:55 * marcus drools
09:07 Foxcool left #mojo
09:08 Foxcool joined #mojo
09:11 crab this cid guy is very confused
09:13 dotan joined #mojo
09:16 cosmincx left #mojo
09:16 cosmincx joined #mojo
09:25 sri ooh, mythbusters is back
09:25 perlrocks Twitter: "1.15 Mojolicious http://ow.ly/1c4Qzc" (sw) --campuscodi http://twitter.com/campusco​di/status/55924248224600064
09:27 perlrocks Twitter: "• Mojolicious 1.15 http://bit.ly/hsYAE7 #script" --YNK33 http://twitter.com/YNK33/status/55924744540786688
09:36 perlrocks Twitter: "New release: Mojolicious 1.15 http://bit.ly/hsYAE7" --softpediascript http://twitter.com/softpediasc​ript/status/55926801054179328
09:36 perlrocks Twitter: "1.15 Mojolicious http://bit.ly/hsYAE7" (sw) --J03_PY http://twitter.com/J03_PY/status/55926800865439744
09:36 sri damn...
09:36 perlrocks Twitter: "1.15 Mojolicious http://bit.ly/eewFnn" (sw) --J03_PY http://twitter.com/J03_PY/status/55926925289467904
09:36 sri looks like a content farm discovered mojolicious
09:37 perlrocks Twitter: "1.15 Mojolicious http://bit.ly/fsJqJe" (sw) --J03_PY http://twitter.com/J03_PY/status/55927154248134656
09:37 sri and this could be the end of our twitter bot
09:53 crab left #mojo
09:53 yko hmm. when Test::Mojo runs tests it doesn't starts ioloop, right?
09:55 Akron joined #mojo
09:56 sri of course it does
09:56 yko ohm. thanks
09:56 sri client and daemon don't work without an ioloop
09:56 sri s/client/useragent/
09:56 yko argh... damn. i hold it wrong
09:56 yko thank you
09:57 sri DON'T HOLD IT THAT WAY!
09:58 yko btw, you ignored my question yesterday :)
09:58 yko default application's useragent has not-singleton ioloop intentional?
09:58 sri intentional
09:58 yko ah, thanks again
09:58 sri actually it never should have the singleton ioloop in the attribute
09:59 sri $ua->ioloop is the ioloop used for blocking requests only
09:59 sri since non-blocking will always use Mojo::IOLoop->singleton now
10:00 yko hmm. i really should read useragent more
10:01 sri it's really simple now
10:01 sri $ua->ioloop = blocking, Mojo::IOLoop->singleton = non-blocking
10:02 sri no callback = blocking, callback = non-blocking
10:02 sri no in-between, just absolutes
10:04 yko i feel that changes are good, it was just a bit harmfull for myself because now everything is simplier but different :)
10:05 yko ua looks good now though
10:05 yko better than client was
10:10 marcus I agree
10:10 marcus it's eeez
10:12 yko okay, #parrot and #perl-help are behind now. we'll soon beat #PoE by people online :)
10:15 sri :)
10:16 moritz way to go to beat #perl6 (209)
10:17 sri hmm, #catalyst has not grown in a long time
10:19 sri the fact that #node.js is now bigger than #perl is a bit scary
10:19 moritz it's hyped.
10:20 sri it's not just hype, there is a new generation growing up with javascript now
10:21 moritz it kinda makes sense; for the browser you need JS anyway, why not reuse that knowledge for other applications?
10:22 sri yes
10:22 sri what i find interesting is that many of them are very young
10:23 sri javascript is becoming the first language that generation learns
10:24 yko "forgot to render or resume?" will always appear when render_later now or I missed something?
10:24 sri yko: yes
10:27 squeeks joined #mojo
10:28 squeeks I feel rather retarded at this point in time. https://gist.github.com/7ea07c9bdf4aa8285296 Any ideas why this simple thing doesn't actually render the text and I get the default "This page is brand new..." ?
10:31 moritz squeeks: returns 'sup' for me
10:31 sri same
10:31 squeeks wtf.
10:32 sri btw
10:32 moritz squeeks: is your mojo version up-to-date-ish?
10:32 sri app->start('daemon') i wouldn't do
10:32 squeeks Mojolicious is up to date. (1.15)
10:32 yko squeeks: looks like it works right on my side
10:32 sri "./myapp.pl get /" is too useful for debugging stuff like this
10:33 yko ./t get / => sup
10:33 squeeks ugh. I'll come back when I figure out what the hell I'm doing.
10:33 squeeks left #mojo
10:34 sri prolly just mixed up two apps
10:34 yko sqeek - remove 'daemon', run as sri told you
10:34 sri development log for lite app is suspicious
10:34 yko *squeeks (somebody teach me how to use tab key...)
10:34 sri he left
10:35 * sri puts superglue on ykos tab key
10:50 mephist left #mojo
10:54 mephist joined #mojo
11:10 dotan left #mojo
11:22 mephist left #mojo
11:28 keith-home left #mojo
11:35 GitHub18 joined #mojo
11:35 GitHub18 mojo: master Sebastian Riedel * e970315 (2 files in 2 dirs): made ietf-06 WebSocket implementation work with the latest Firefox prototype - http://bit.ly/fo4g41
11:35 GitHub18 left #mojo
11:37 sri i had masking a little bit wrong
11:38 sri we actually don't know the frame length in advance, we have to chop off pieces and unmask them on the fly
11:38 sri it works surprisingly well with Firefox Minefield now
11:40 sri would be cool if someone came up with a smarter masking algorithm
11:42 perlrocks Twitter: "Made the #mojolicious ietf-06 #websocket implementation work with the latest #firefox prototype. :) http://t.co/YeIENch #perl" --kraih http://twitter.com/kraih/status/55958590762139648
12:04 Foxcool left #mojo
12:16 Foxcool joined #mojo
12:22 mephist joined #mojo
12:24 metaperl joined #mojo
12:40 koban left #mojo
12:40 koban joined #mojo
12:47 Foxcool left #mojo
12:50 marcus sri: firefox 4 will be doing frequent releases chrom style right?
12:51 daviddelikat joined #mojo
12:56 daviddelikat1 left #mojo
12:58 Foxcool joined #mojo
12:58 sri marcus: right
13:00 tempire left #mojo
13:00 sri i really need a better masking algorithm :S
13:01 tempire joined #mojo
13:02 sri or actually not :S
13:09 espent_ joined #mojo
13:09 espent left #mojo
13:09 espent_ is now known as espent
13:10 sri hmm
13:11 sri there is a small bug somewhere, messages get corrupted after about 500 bytes
13:14 perlrocks Twitter: "I am way out of the loop. If I needed to use a #perl based web framework, do I use #mojolicious, #dancer, #plack or #catalyst?" --skreuzer http://twitter.com/skreuze​r/status/55981804980670465
13:16 dotan joined #mojo
13:27 perlrocks Twitter: "@skreuzer I would give Mojolicious a try. One module needed to get started. Catalyst needs tens of them." --tagestad http://twitter.com/tagesta​d/status/55985047332847616
13:33 perlrocks Twitter: "@skreuzer Mojolicious is the only one that has a low-learning curve, and lets you grow into something more serious using the same code." --tempiretech http://twitter.com/tempirete​ch/status/55986674747973632
13:35 sri finding people on facebook you've not seen for 10+ years is fun
13:39 sri elb0w: mojo get ;)
13:40 elb0w lol
13:40 sri it's a curl alternative these days
13:40 elb0w How minimal can I use it?
13:40 sri what do you mean?
13:41 elb0w what is it Mojolicious::Command::Get?
13:41 sri wait, you want a perl api?
13:41 sri then Mojo::UserAgent of course
13:41 sri mojo get is just the command line frontend
13:42 elb0w ill give it a shot
13:43 sri (realizing how many names you've forgotten over the years... not so much fun)
13:45 elb0w Thu Apr  7 09:45:12 2011 error Mojo::UserAgent:661 [27406]: IO::Socket::SSL 1.37 required for TLS support.
13:46 elb0w thought mojolicious had minimal dependencies sri!
13:46 elb0w :P
13:46 sri umm, ssl... seriously?
13:46 elb0w haha
13:46 elb0w nice
13:46 elb0w worked
13:46 elb0w Im going to laugh if thats why the curl script didnt
13:46 sri naah, curl uses libcurl
13:47 elb0w good stuff
13:47 purl good stuff is at the end
13:47 sri i've written the multi part of WWW::Curl
13:47 sri many many moons ago
13:47 elb0w fuck yeah, i love mojolicious
13:47 sri :)
13:47 elb0w feel like getting a twitter account just to post it
13:48 elb0w haha
13:48 sri sounds like a good idea
13:48 elb0w seriously though, if you are ever in NY lemme know im buying you a beer
13:48 perlrocks Twitter: "So far 2 votes for #mojolicious so I am updating my ports tree and I'll give it a try. Thanks @tagestad and @tempiretech" --skreuzer http://twitter.com/skreuze​r/status/55990420534067200
13:49 * sri puts it on the free beer list
13:50 elb0w is there a method to seperate the uri from the url to get from?
13:50 elb0w I mean the arguments
13:50 elb0w ?x=a&b=whatever
13:50 sri there is *a lot*
13:51 elb0w examples anywhere?\
13:51 sri you can for example just pass it Mojo::URL objects
13:51 koban left #mojo
13:51 sri which has a funky query method
13:52 elb0w o this is nice
13:52 elb0w where have you been all my life
13:53 koban` joined #mojo
14:05 elb0w good when im done with this maybe ill make a Mojolicious::PayPal for PDT transfers
14:05 elb0w may aswell, it uses all mojo now
14:05 sri neat
14:06 Akron elb0w: I have a small PayPal module already that uses Mojo. I just have to do some clean up.
14:07 elb0w ah cool
14:07 elb0w does it do PDT?
14:09 Akron Pacific daytime? Sorry - don't know what PDT means. ;) It's currently a straight forward implementation of the ExpressCheckout workflow.
14:09 Akron Ah - Payment data Transfer!
14:11 AmeliePoulain left #mojo
14:12 Akron elb0w: No. It is just ExpressCheckout with GetExpressCheckoutDetails stuff.
14:16 elb0w Yeah, im just handling pdt
14:16 elb0w So the post back hits my script
14:16 elb0w and it auto validates that the payment was successful or not
14:17 Akron Ah ... okay. But maybe it would be a nice idea to have this PayPal stuff all in one Plugin?
14:17 espent left #mojo
14:18 elb0w sure, its pretty basic logic. I could either give you the code when im done and you clean it up for your plugin, or I can just explain the flow to you
14:18 elb0w its pretty simple
14:23 Akron sri would say: Open a GitHub repo so I have to learn this thing. ;)
14:23 sri Open a GitHub repo so I have to learn this thing.
14:23 sri ...wait
14:24 elb0w I really dont like a bunch of things about githubs interface
14:24 sri blasphemy!
14:24 moritz for example?
14:25 Akron :) My plugin is more or less non-dependent to Mojolicious - so I wanted to make it not based on Mojolicious::PayPal but anywhere else ... and Mojolicious::Plugin only for the framework thing ... so ... still have to figure out the right place.
14:25 * moritz mostly knows github as a vast improvement over sourceforge :-)
14:25 elb0w It doesnt load right on my firefox at home
14:25 elb0w When I click my name I should see my repos
14:25 elb0w instead of clicking dashboard
14:25 sri looks fine in firefox 4
14:26 elb0w It should also show Private Repositories im contributing to
14:26 elb0w not just in the list from dashboard
14:26 sri suggest changes, they are generally very open for good suggestions
14:26 moritz my pet peeve: you can't create new repos from the dashboard
14:26 elb0w The code view itself I think is very elegant
14:26 moritz only from the front page
14:26 elb0w I think the dashboard and front page need to merge
14:27 moritz I used to spend minutes to find the "new repo" button
14:27 elb0w yeah
14:28 kaare left #mojo
14:32 sri you should try the alternatives ;p
14:33 moritz sf.net... don't even get me started
14:33 moritz berlios... wtf?
14:33 sri http://repo.or.cz/ # the classic :)
14:34 sri http://savannah.gnu.org/
14:34 purl well, http://savannah.gnu.org/ is a SF-alike run by GNU, if you don't have ethical issues with GNU.
14:35 sri http://gitorious.org/ # the closest to github... but still horrible
14:37 sri https://launchpad.net # just as bad as sf.net
14:37 * moritz once spent more than 20 minutes on sf searching for the option to change the project homepag
14:37 moritz e
14:37 sri xD
14:38 sri https://bitbucket.org # almost forgot the mercurial one
14:38 sri those 3 are pretty much the only competition
14:38 sri and they are all much worse
14:39 sri what's interesting is that both bazaar and mercurial are written in python
14:41 sri git is c and perl
14:44 koban` left #mojo
14:56 Akron left #mojo
15:00 dku sri: i don't mind, but that link will probably be dead soon, will reinstate it in a few days when the platform actually goes public ;)
15:01 dku also, yes, that's the mojo devel server, as long as we can call some script (or plackup a psgi file) in your app that'll listen on port 3000, you're golden
15:01 sri awesome
15:02 sri does the server have to stay in the foreground or so?
15:02 sri or how do you monitor it?
15:03 dku well, i have an outside monitoring system that tries to hit your app to see if it's responding
15:03 sri ah
15:03 dku if it's not, another instance will be spawned and requests routed to it
15:03 dku transparent to the user
15:04 moritz sounds nifty
15:06 damog joined #mojo
15:07 Christian cu all
15:08 Christian left #mojo
15:16 elb0w man so mad i have a php project
15:16 elb0w I tried talkin them into usin mojo, they didnt budge
15:38 sri damn, i'm stupid :S
15:48 breaker313 left #mojo
15:49 GitHub133 joined #mojo
15:49 GitHub133 mojo: master Sebastian Riedel * 21a5879 (2 files in 2 dirs): fixed ietf-06 masking and added tests - http://bit.ly/i2CH1p
15:49 GitHub133 left #mojo
15:50 sri ok, that's better
15:51 shurex1 left #mojo
15:52 arpadszasz left #mojo
15:53 dotan left #mojo
15:53 shurex joined #mojo
15:53 ysyrota left #mojo
15:54 kaare joined #mojo
16:06 tempire I'm a fan of the after_not_found & after_exception
16:08 fhelmber_ left #mojo
16:08 sri what would you do with it?
16:10 tempire I'm thinking hooks for logging
16:10 sri ah, email on exception and the like?
16:11 tempire well, more like db storage for failure statistics
16:11 tempire but yeah, same idea
16:11 * sri nods
16:21 Foxcool left #mojo
16:33 marty_ joined #mojo
16:33 marty left #mojo
16:36 perlrocks Twitter: "@skreuzer I vote #Mojolicious as well." --AFreshOne http://twitter.com/AFreshOn​e/status/56032630948376577
16:37 cosmincx left #mojo
16:53 xris joined #mojo
17:06 mephist left #mojo
17:06 spleenjack left #mojo
17:14 Akron joined #mojo
17:28 Foxcool joined #mojo
17:33 Pilate left #mojo
18:09 elb0w sri, should I use URI::Escape or is there something with Mojo::URL?
18:10 sri Mojo::ByteStream can do everything
18:11 marcus wow. that is amazing
18:11 * marcus tries to figure out how Mojo::ByteStream makes coffee.
18:12 elb0w it returns a string?
18:12 sri b()->coffee('cappucino')
18:12 elb0w $stream->html_unescape?
18:13 elb0w or do I have to add to_string?
18:13 moritz if your coffee is a byte stream, Mojo::ByteStream will do it for you
18:13 sri http://mojolicio.us/perldo​c?Mojo/ByteStream#SYNOPSIS
18:14 sri all answers are in the examples
18:18 Akron But it's not fully capable of RFC 2324 ...
18:19 sri https://github.com/kraih/mojo/blob/ma​ster/lib/Mojo/Message/Response.pm#L59
18:19 sri but we do support this!
18:22 Akron Is this the regular response for requests with content-type application/coffee-pot-command?
18:22 * sri nods
18:23 Akron \o/
18:23 sri /o\
18:23 dku bug report in mozilla for lack of RFC 2324 support: https://bugzilla.mozilla.org/show_bug.cgi?id=46647
18:24 dku i think that needs to be reopened :)
18:24 sri indded
18:36 stephen left #mojo
18:40 stephen joined #mojo
18:57 Akron left #mojo
18:58 fhelmber_ joined #mojo
18:58 fhelmber_ left #mojo
18:59 fhelmber_ joined #mojo
19:00 mephist joined #mojo
19:34 mattastrophe joined #mojo
19:42 mateu does a mojo have a way of avoiding double encoding?
19:43 sri yea, just don't do it ;p
19:43 fhelmber_ left #mojo
19:44 mateu I have some stuff I'd like to encode before it gets passed to render(), but render blindly tries to encode it again it seems.
19:44 sri that sounds wrong
19:44 mateu my approach or the behavior?
19:45 sri your approach
19:45 mateu why?
19:45 sri render wants perl chars
19:45 sri only render(data => ...) takes bytes
19:45 mateu ok.  so is the is_utf8() check not reliable?
19:46 sri lol, no
19:46 mateu that's the feeling I was getting darn, but thanks for the data suggestion, maybe that will be useful.
19:47 * mateu is beginning to sense why utf8 causes so much grief
19:48 sri when you see is_utf8 in mojolicious it is usually just for backcompat, not meant as a feature
19:49 mateu ok, that's what I was getting (prematurely) exicted about: utf8::encode $data if utf8::is_utf8 $data
20:10 perlite left #mojo
20:12 perlite joined #mojo
20:24 Foxcool left #mojo
20:36 Akron joined #mojo
20:43 Akron left #mojo
20:46 yrlnry joined #mojo
20:47 yrlnry left #mojo
21:54 kaare left #mojo
22:02 metaperl left #mojo
22:06 mephist left #mojo
22:06 metaperl joined #mojo
22:25 megatron joined #mojo
23:00 shurex1 joined #mojo
23:03 shurex left #mojo
23:07 xris left #mojo
23:55 sherr left #mojo
23:55 sherr joined #mojo

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