Coder Social home page Coder Social logo

mojolicious / mojo Goto Github PK

View Code? Open in Web Editor NEW
2.7K 214.0 570.0 29.29 MB

:sparkles: Mojolicious - Perl real-time web framework

Home Page: https://mojolicious.org

License: Artistic License 2.0

Perl 99.79% XProc 0.01% Mathematica 0.01% CSS 0.19% JavaScript 0.01%
perl json event-loop user-agent web-server websocket http html mojolicious mvc

mojo's Introduction

Mojolicious is a fresh take on Perl web development, based on years of experience developing the Catalyst framework, and utilizing the latest web standards and technologies. You can get started with your project quickly, with a framework that grows with your needs.

The Mojo stack provides a consistent set of components that can be used in any project. The guides cover most aspects of using the framework and the components have comprehensive reference documentation. Mojolicious is a real-time web framework, which allows a new class of web applications using WebSockets and having long-running requests without blocking.

Join us now, and be a part of a friendly and knowledgeable community of developers!

Features

  • Most popular distribution on CPAN.
  • An amazing real-time web framework, allowing you to easily grow single file prototypes into well-structured MVC web applications.
    • Everything you need to build cloud-native web applications for state of the art container environments.
    • Powerful out of the box with RESTful routes, plugins, commands, Perl-ish templates, content negotiation, session management, form validation, testing framework, static file server, CGI/PSGI detection, first class Unicode support and much more for you to discover.
  • A powerful web development toolkit, that you can use for all kinds of applications, independently of the web framework.
    • Full stack HTTP and WebSocket client/server implementation with IPv6, TLS, SNI, IDNA, HTTP/SOCKS5 proxy, UNIX domain socket, Comet (long polling), Promises/A+, async/await, keep-alive, connection pooling, timeout, cookie, multipart, and gzip compression support.
    • Built-in non-blocking I/O web server, supporting multiple event loops as well as optional pre-forking and hot deployment, perfect for building highly scalable web services.
    • JSON and HTML/XML parser with CSS selector support.
  • Very clean, portable and object-oriented pure-Perl API with no hidden magic and no requirements besides Perl 5.26.0 (versions as old as 5.16.0 can be used too, but may require additional CPAN modules to be installed)
  • Also available for JavaScript.
  • Fresh code based upon years of experience developing Catalyst, free and open source.
  • Hundreds of 3rd party extensions and high quality spin-off projects like the Minion job queue.

Installation

All you need is a one-liner, it takes less than a minute.

$ curl -L https://cpanmin.us | perl - -M https://cpan.metacpan.org -n Mojolicious

We recommend the use of a Perlbrew environment.

Getting Started

These three lines are a whole web application.

use Mojolicious::Lite;

get '/' => {text => 'I ♥ Mojolicious!'};

app->start;

To run the example with the built-in development web server, just put the code into a file and start it with morbo.

$ morbo hello.pl
Web application available at http://127.0.0.1:3000

Test it with any HTTP client you prefer.

$ curl http://127.0.0.1:3000/
I ♥ Mojolicious!

Duct tape for the HTML5 web

Use all the latest Perl and HTML features in beautiful single file prototypes like this one, and grow them easily into well-structured Model-View-Controller web applications.

use Mojolicious::Lite -signatures;

# Render template "index.html.ep" from the DATA section
get '/' => sub ($c) {
  $c->render(template => 'index');
};

# WebSocket service used by the template to extract the title from a website
websocket '/title' => sub ($c) {
  $c->on(message => sub ($c, $msg) {
    my $title = $c->ua->get($msg)->result->dom->at('title')->text;
    $c->send($title);
  });
};

app->start;
__DATA__

@@ index.html.ep
% my $url = url_for 'title';
<script>
  const ws = new WebSocket('<%= $url->to_abs %>');
  ws.onmessage = function (event) { document.body.innerHTML += event.data };
  ws.onopen    = function (event) { ws.send('https://mojolicious.org') };
</script>

Want to know more?

Take a look at our excellent documentation!

mojo's People

Contributors

abh avatar acajou avatar akron avatar alexvaluyskiy avatar amenonsen avatar candyangel avatar charsbar avatar dz-at-tc avatar gbarr avatar grinnz avatar jamadam avatar jberger avatar kiwiroy avatar kraih avatar marcusramberg avatar markogrady1 avatar markstos avatar melo avatar mergify[bot] avatar olegwtf avatar petdance avatar rabbiveesh avatar rsp avatar s1037989 avatar shadowcat-mst avatar tempire avatar yko avatar yuki-kimoto avatar zakame avatar zoffixznet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mojo's Issues

Mojo::Client->clone

Maybe clone can inherit managed and ioloop also?

As far as I understand most things in clone was designed to serve async() which is deprecated and will be removed soon.

Maybe it's better to do $self->new in clone() and than just remove _cache, _cs, _queue, _processing? Clone can also inherit all test_server stuff because it inherits app as well.

That could made maintaining clone() easier, but unsure though. Just discussing.

latest build fails on strawberry (mojo/client.t, mojolicious/lite_app.t)

cpanm (App::cpanminus) 1.001 on perl 5.012000 built for MSWin32-x86-multi-thread
Work directory is /.cpanm/work/1282501788.5172
You have make C:\strawberry\c\bin\dmake.exe
You have LWP 5.836
Falling back to Archive::Tar 1.66
Entering C:/Users/zakame/mojo
Configuring C:/Users/zakame/mojo
Running Makefile.PL
Writing Makefile for Mojolicious
-> OK
Finding PREREQ from Makefile ...
Checking if you have Scalar::Util 0 ... Yes (1.23)
Checking if you have FindBin 0 ... Yes (1.50)
Checking if you have File::Spec 0 ... Yes (3.31)
Checking if you have Storable 0 ... Yes (2.22)
Checking if you have Encode 0 ... Yes (2.39)
Checking if you have Test::Builder 0 ... Yes (0.94)
Checking if you have POSIX 0 ... Yes (1.19)
Checking if you have IO::Poll 0 ... Yes (0.07)
Checking if you have Digest::MD5 0 ... Yes (2.40)
Checking if you have I18N::LangTags 0 ... Yes (0.35)
Checking if you have File::Path 0 ... Yes (2.08_01)
Checking if you have File::Spec::Functions 0 ... Yes (3.30)
Checking if you have Errno 0 ... Yes (1.11)
Checking if you have Test::Harness 0 ... Yes (3.21)
Checking if you have File::Copy 0 ... Yes (2.18)
Checking if you have Getopt::Long 0 ... Yes (2.38)
Checking if you have IO::File 0 ... Yes (1.14)
Checking if you have Data::Dumper 0 ... Yes (2.126)
Checking if you have ExtUtils::MakeMaker 0 ... Yes (6.56)
Checking if you have MIME::QuotedPrint 0 ... Yes (3.09)
Checking if you have Time::HiRes 0 ... Yes (1.9721)
Checking if you have Carp 0 ... Yes (1.15)
Checking if you have Test::More 0 ... Yes (0.94)
Checking if you have MIME::Base64 0 ... Yes (3.09)
Checking if you have IO::Socket 0 ... Yes (1.31)
Checking if you have File::Temp 0 ... Yes (0.22)
Checking if you have Locale::Maketext 0 ... Yes (1.14)
Checking if you have File::Basename 0 ... Yes (2.78)
Checking if you have Sys::Hostname 0 ... Yes (1.11)
Checking if you have Cwd 0 ... Yes (3.31)
Building and testing . for .
Skip blib\lib\Test\Mojo\Server.pm (unchanged)
Skip blib\lib\Mojo\Template.pm (unchanged)
Skip blib\lib\MojoX\Routes\Pattern.pm (unchanged)
Skip blib\lib\Mojo\JSON.pm (unchanged)
Skip blib\lib\Mojo\ByteStream.pm (unchanged)
Skip blib\lib\MojoX\Session\Cookie\Controller.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin\PodRenderer.pm (unchanged)
Skip blib\lib\Mojo\Log.pm (unchanged)
Skip blib\lib\Mojo\Command\Generate.pm (unchanged)
Skip blib\lib\Mojolicious\Guides.pod (unchanged)
Skip blib\lib\Mojolicious\Plugin\TagHelpers.pm (unchanged)
Skip blib\lib\Mojo\Transaction.pm (unchanged)
Skip blib\lib\Mojo\Filter.pm (unchanged)
Skip blib\lib\Mojo\Cookie\Response.pm (unchanged)
Skip blib\lib\MojoX\Routes.pm (unchanged)
Skip blib\lib\Mojo\CookieJar.pm (unchanged)
Skip blib\lib\MojoX\Routes\Match.pm (unchanged)
Skip blib\lib\Test\Mojo.pm (unchanged)
Skip blib\lib\Mojo\Cookie.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin\I18n.pm (unchanged)
Skip blib\lib\Mojo\Command\Psgi.pm (unchanged)
Skip blib\lib\Mojo\Server.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin\DefaultHelpers.pm (unchanged)
Skip blib\lib\Mojo\Server\PSGI.pm (unchanged)
Skip blib\lib\Mojo\Path.pm (unchanged)
Skip blib\lib\MojoX\Controller.pm (unchanged)
Skip blib\lib\Mojo\Upload.pm (unchanged)
Skip blib\lib\Mojo\Date.pm (unchanged)
Skip blib\lib\Mojolicious\Lite.pm (unchanged)
Skip blib\lib\Mojolicious\Command\Generate\LiteApp.pm (unchanged)
Skip blib\lib\Mojolicious\Command\Routes.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin\HeaderCondition.pm (unchanged)
Skip blib\lib\Mojolicious\Commands.pm (unchanged)
Skip blib\lib\Mojo\HelloWorld.pm (unchanged)
Skip blib\lib\Mojo\Command.pm (unchanged)
Skip blib\lib\Mojo\Server\CGI.pm (unchanged)
Skip blib\lib\MojoX\Renderer.pm (unchanged)
Skip blib\lib\MojoX\Types.pm (unchanged)
Skip blib\lib\Mojo\Message.pm (unchanged)
Skip blib\lib\Mojolicious\Guides\Cookbook.pod (unchanged)
Skip blib\lib\Mojolicious\Guides\FAQ.pod (unchanged)
Skip blib\lib\Mojolicious\Guides\Rendering.pod (unchanged)
Skip blib\lib\Mojo\Cookie\Request.pm (unchanged)
Skip blib\lib\Mojo\Command\Version.pm (unchanged)
Skip blib\lib\Mojo\Base.pm (unchanged)
Skip blib\lib\Mojo\Transaction\HTTP.pm (unchanged)
Skip blib\lib\Mojo\Asset\File.pm (unchanged)
Skip blib\lib\Mojo\Content.pm (unchanged)
Skip blib\lib\Mojo\Loader.pm (unchanged)
Skip blib\lib\Mojo\Content\MultiPart.pm (unchanged)
Skip blib\lib\Mojo\Command\Daemon.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin\PoweredBy.pm (unchanged)
Skip blib\lib\Mojolicious\Command\Generate\App.pm (unchanged)
Skip blib\lib\Mojolicious\Guides\CodingGuidelines.pod (unchanged)
Skip blib\lib\Mojo\Server\FastCGI.pm (unchanged)
Skip blib\lib\MojoX\Dispatcher\Routes.pm (unchanged)
Skip blib\lib\MojoX\Session\Cookie.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin\Charset.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin\EpRenderer.pm (unchanged)
Skip blib\lib\Mojo\Asset\Memory.pm (unchanged)
Skip blib\lib\Mojolicious\Plugins.pm (unchanged)
Skip blib\lib\Mojolicious\Guides\Cheatsheet.pod (unchanged)
Skip blib\lib\Mojo\Commands.pm (unchanged)
Skip blib\lib\Mojo\URL.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin\RequestTimer.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin\JsonConfig.pm (unchanged)
Skip blib\lib\Mojo\Message\Response.pm (unchanged)
Skip blib\lib\Mojo\Command\Fastcgi.pm (unchanged)
Skip blib\lib\Mojolicious.pm (unchanged)
Skip blib\lib\Mojo\Filter\Chunked.pm (unchanged)
Skip blib\lib\Mojo\Home.pm (unchanged)
Skip blib\lib\Mojo\Transaction\WebSocket.pm (unchanged)
Skip blib\lib\Mojo\Command\Generate\App.pm (unchanged)
Skip blib\lib\Mojo\Command\Generate\Gitignore.pm (unchanged)
Skip blib\lib\Mojo\DOM.pm (unchanged)
Skip blib\lib\ojo.pm (unchanged)
Skip blib\lib\Mojo\Command\Cgi.pm (unchanged)
Skip blib\lib\Mojo\Content\Single.pm (unchanged)
Skip blib\lib\Mojolicious\Controller.pm (unchanged)
Skip blib\lib\Mojo\Server\Daemon.pm (unchanged)
Skip blib\lib\Mojo\Transaction\Single.pm (unchanged)
Skip blib\lib\Mojo\Exception.pm (unchanged)
Skip blib\lib\Mojo.pm (unchanged)
Skip blib\lib\Mojo\Command\Test.pm (unchanged)
Skip blib\lib\Mojolicious\Command\Generate.pm (unchanged)
Skip blib\lib\Mojo\IOLoop.pm (unchanged)
Skip blib\lib\Mojo\Asset.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin\EplRenderer.pm (unchanged)
Skip blib\lib\MojoX\Dispatcher\Routes\Controller.pm (unchanged)
Skip blib\lib\Mojo\Message\Request.pm (unchanged)
Skip blib\lib\Mojo\Command\Get.pm (unchanged)
Skip blib\lib\Mojo\Server\Daemon\Prefork.pm (unchanged)
Skip blib\lib\Mojo\Headers.pm (unchanged)
Skip blib\lib\Mojo\Command\DaemonPrefork.pm (unchanged)
Skip blib\lib\Mojo\Client.pm (unchanged)
Skip blib\lib\MojoX\Dispatcher\Static.pm (unchanged)
Skip blib\lib\Mojolicious\Command\Inflate.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin\AgentCondition.pm (unchanged)
Skip blib\lib\Mojolicious\Guides\Routing.pod (unchanged)
Skip blib\lib\Mojo\Parameters.pm (unchanged)
Skip blib\lib\Mojo\Command\Generate\Makefile.pm (unchanged)
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e "cp" -- script/mojolicious blib\script\mojolicious
pl2bat.bat blib\script\mojolicious
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e "cp" -- script/mojo blib\script\mojo
pl2bat.bat blib\script\mojo
C:\strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib\lib', 'blib\arch')" t/*.t t/*/*.t t/*/*/*.t t/*/*/*/*.t
t/mojo/apache_cgi.t ........................... skipped: Mac OS X required for this test!
t/mojo/apache_fastcgi.t ....................... skipped: Mac OS X required for this test!
Mon Aug 23 02:29:53 2010 info Mojo::Server::Daemon:362 [5532]: Server listening (http://*:15704)
Mon Aug 23 02:29:53 2010 error Mojo::Server::Daemon:236 [5532]: An existing connection was forcibly closed by the remote host.
t/mojo/app.t .................................. ok
t/mojo/asset.t ................................ ok
t/mojo/base.t ................................. ok
t/mojo/bytestream.t ........................... ok
t/mojo/cgi.t .................................. ok
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:14667)
Mon Aug 23 02:29:55 2010 debug Mojolicious:26 [2300]: Your secret passphrase needs to be changed!!!
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001189s, 841.043/s).
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001586s, 630.517/s).
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001064s, 939.850/s).
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001048s, 954.198/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:14932)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000945s, 1058.201/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13349)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000938s, 1066.098/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13151)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001062s, 941.620/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:19947)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000932s, 1072.961/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:16539)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000971s, 1029.866/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:12033)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000946s, 1057.082/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10856)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000954s, 1048.218/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:12470)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000946s, 1057.082/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13084)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000946s, 1057.082/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10191)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001124s, 889.680/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10532)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000953s, 1049.318/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:17375)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000964s, 1037.344/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:18754)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000952s, 1050.420/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:16644)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000963s, 1038.422/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:18481)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000984s, 1016.260/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:11931)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000952s, 1050.420/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:12583)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000969s, 1031.992/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:18254)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000989s, 1011.122/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:19547)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000949s, 1053.741/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:18052)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000942s, 1061.571/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:15079)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001055s, 947.867/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:15823)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001076s, 929.368/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:17951)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000953s, 1049.318/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:16597)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000928s, 1077.586/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10438)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001128s, 886.525/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10528)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001078s, 927.644/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:12605)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000943s, 1060.445/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10292)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000943s, 1060.445/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13334)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000952s, 1050.420/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:15821)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000949s, 1053.741/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13159)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001116s, 896.057/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:17061)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000947s, 1055.966/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13701)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000952s, 1050.420/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10559)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000964s, 1037.344/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:17093)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001245s, 803.213/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10037)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000968s, 1033.058/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:14450)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000951s, 1051.525/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:17147)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000978s, 1022.495/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13641)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000980s, 1020.408/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:16111)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000976s, 1024.590/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:18949)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000981s, 1019.368/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:19857)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000936s, 1068.376/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:14561)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001043s, 958.773/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13240)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000979s, 1021.450/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:14786)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000941s, 1062.699/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13473)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001140s, 877.193/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:12560)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000942s, 1061.571/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13190)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001029s, 971.817/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10455)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000974s, 1026.694/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:19208)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000961s, 1040.583/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:18929)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000963s, 1038.422/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:14473)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001025s, 975.610/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13684)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000961s, 1040.583/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:14928)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000949s, 1053.741/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:17290)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001451s, 689.180/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:18586)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000945s, 1058.201/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:14419)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001446s, 691.563/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10953)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001025s, 975.610/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10735)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001016s, 984.252/s).
Mon Aug 23 02:29:55 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:16933)
Mon Aug 23 02:29:55 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:55 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000966s, 1035.197/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:15253)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001092s, 915.751/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10726)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000965s, 1036.269/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:18496)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000956s, 1046.025/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:18184)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001335s, 749.064/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:12961)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000953s, 1049.318/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:12418)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000965s, 1036.269/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:11159)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000959s, 1042.753/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:12021)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000953s, 1049.318/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:18266)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000988s, 1012.146/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:19526)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000948s, 1054.852/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:11794)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000961s, 1040.583/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:11902)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001113s, 898.473/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10594)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001036s, 965.251/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:12565)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001052s, 950.570/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10383)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000946s, 1057.082/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:15453)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000961s, 1040.583/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:14364)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000990s, 1010.101/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:19272)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001026s, 974.659/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:15898)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000948s, 1054.852/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13166)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000942s, 1061.571/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:15989)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000974s, 1026.694/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:18132)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001432s, 698.324/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:18006)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000975s, 1025.641/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:15162)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000942s, 1061.571/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:18938)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000980s, 1020.408/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:17064)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001602s, 624.220/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:14734)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000958s, 1043.841/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10524)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000943s, 1060.445/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:11278)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000975s, 1025.641/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:17559)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001408s, 710.227/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:19848)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000957s, 1044.932/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:12495)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000953s, 1049.318/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:12241)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000946s, 1057.082/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10286)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001040s, 961.538/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:16548)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000955s, 1047.120/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:16022)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000986s, 1014.199/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:16743)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001061s, 942.507/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:14486)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001082s, 924.214/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:15313)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000954s, 1048.218/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:16735)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000965s, 1036.269/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10146)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000955s, 1047.120/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:11730)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000966s, 1035.197/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10117)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000970s, 1030.928/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:16650)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000964s, 1037.344/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10087)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001008s, 992.063/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13676)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000986s, 1014.199/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:17490)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000991s, 1009.082/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:14939)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000981s, 1019.368/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:19525)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000925s, 1081.081/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:17421)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000951s, 1051.525/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:15997)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000992s, 1008.065/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:11984)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000923s, 1083.424/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10013)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000955s, 1047.120/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:19315)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000951s, 1051.525/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:15491)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001051s, 951.475/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13113)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000927s, 1078.749/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13941)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000931s, 1074.114/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:19630)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000953s, 1049.318/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:18395)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001008s, 992.063/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13535)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001334s, 749.625/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:14034)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000996s, 1004.016/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:15999)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000943s, 1060.445/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:19739)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001239s, 807.103/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10683)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000959s, 1042.753/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:18547)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000969s, 1031.992/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10962)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000959s, 1042.753/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13408)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000976s, 1024.590/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13520)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000983s, 1017.294/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:15204)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000969s, 1031.992/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:11035)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001520s, 657.895/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:15177)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001123s, 890.472/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:11264)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000957s, 1044.932/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13518)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000953s, 1049.318/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:11121)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000986s, 1014.199/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:19284)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000985s, 1015.228/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:12380)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000945s, 1058.201/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13657)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001428s, 700.280/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:19759)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000947s, 1055.966/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13755)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000970s, 1030.928/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:19706)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000959s, 1042.753/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:14717)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000998s, 1002.004/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13382)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000949s, 1053.741/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:17431)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000954s, 1048.218/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:17251)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001260s, 793.651/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:17076)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000946s, 1057.082/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:19309)
Mon Aug 23 02:29:56 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:56 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000987s, 1013.171/s).
Mon Aug 23 02:29:56 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:17879)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000950s, 1052.632/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:17352)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001019s, 981.354/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10979)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001039s, 962.464/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:14157)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000979s, 1021.450/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:14547)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001091s, 916.590/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:17427)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000945s, 1058.201/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:14036)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000946s, 1057.082/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:19441)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000977s, 1023.541/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:15181)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000973s, 1027.749/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10604)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000948s, 1054.852/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13489)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001540s, 649.351/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:15045)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000955s, 1047.120/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:18670)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000951s, 1051.525/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:19765)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000969s, 1031.992/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:14863)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001237s, 808.407/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:18635)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001027s, 973.710/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:19324)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001080s, 925.926/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:17435)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000980s, 1020.408/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10401)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001032s, 968.992/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:12188)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000951s, 1051.525/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:15099)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000943s, 1060.445/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:19887)
Mon Aug 23 02:29:57 2010 error Mojo::Client:762 [2300]: A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.

#   Failed test 'right status'
#   at t/mojo/client.t line 66.
#          got: undef
#     expected: '200'

#   Failed test 'right content'
#   at t/mojo/client.t line 67.
#          got: ''
#     expected: 'works'

#   Failed test 'request successful'
#   at t/mojo/client.t line 68.
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10540)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000931s, 1074.114/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:14376)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000952s, 1050.420/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:15983)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000962s, 1039.501/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10667)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001181s, 846.740/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:11070)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001539s, 649.773/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:11624)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000954s, 1048.218/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:12214)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000965s, 1036.269/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:12382)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.001034s, 967.118/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:10215)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000960s, 1041.667/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:11675)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000943s, 1060.445/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:13022)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000961s, 1040.583/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:18796)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000979s, 1021.450/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:12043)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000943s, 1060.445/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:19027)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000948s, 1054.852/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:11183)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000954s, 1048.218/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:12104)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000958s, 1043.841/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening (http://*:16322)
Mon Aug 23 02:29:57 2010 debug Mojolicious:158 [2300]: GET / (Mojolicious (Perl)).
Mon Aug 23 02:29:57 2010 debug Mojolicious::Plugin::RequestTimer:35 [2300]: 200 OK (0.000951s, 1051.525/s).
Mon Aug 23 02:29:57 2010 info Mojo::Server::Daemon:362 [2300]: Server listening 

How about controller and action dispatching in Mojolicious::Lite.

How about controller and action dispatching in Mojoliciou::Lite
and create readable route name automatically.

For example.

get [$controller, $action] => sub {

};

this is equal to

get {controller => $controller, action => $action} => sub {

} => "$controller-$action";

URL is "/$controller/$action"

I think It become very easy to develop web application.

Template name is not needed to rename when Mojolicious::Lite
application grow into Mojolicious application.

__DATA__

@@ controller/action.html.ep

render(inline => something) breaks unicode

I write something like wiki. So some blocks are extracted from database and rendered as inline blocks. These blocks contain utf8 string.

If these blocks are inserted directly <%== $block %>, utf8 works properly.

But in some cases I want to use template directives that is contained in these blocks, so I try to use $self->render(inline => $block), but this way breaks utf8 string.

Example scritpt that showes the problem:

#!/usr/bin/perl

use warnings;
use strict;

use utf8;
# use open qw(:std :utf8);

use Mojolicious::Lite;

get '/' => sub {
    my ($self) = @_;

    my $template_from_db = q{
        привет, медвед! <%= 2 + 2 %>
    };

    $self->render('index', template_from_db => $template_from_db);
};
    
app->start('cgi');
    
__DATA__
@@ index.html.ep
    
<html>
    <head>
        <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
        <title>test</title>
    </head>
    <body>
        <h1> direct include </h1>
        %== $template_from_db
        <hr />
        <h1> inline render </h1>

        %== $self->render(inline => $template_from_db, partial => 1)

        <hr />
        <h1> decoded inline render </h1>
        % use Encode 'decode';
        %== decode utf8 =>$self->render(inline => $template_from_db, partial => 1)
    </body>
</html>

result html is:

<html>
    <head>
        <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
        <title>test</title>
    </head>
    <body>
        <h1> direct include </h1>
        
        привет, медвед! <%= 2 + 2 %>
    
        <hr />

        <h1> inline render </h1>

        
        пÑ<80>ивеÑ<82>, медвед! 4



        <hr />
        <h1> decoded inline render </h1>
        
        привет, медвед! 4


    </body>
</html>

You can see that in the second case utf8 is broken.

Suggestion: Allow valid multi-line headers to set unmodified in Mojo::Headers

I recently reviewed Mojo's handling of multi-line HTTP headers. Here's what I found.

On the plus side, it appears that Mojo always generates RFC-compliant headers, and does
not allow CRLF injection attacks.

I believe it's possible to generate a multi-line header with Mojo::Headers, using this
undocumented (but auto-tested) syntax:

$headers->add('Content-Type', ['first line','second line']);

However, given a valid multi-line header value as an input, Mojo will modify it to be on a single line.
This input for a header value:

first line\n second line

Becomes:

first line second line

From my reading of the HTTP spec, this appears to be an acceptable "unfolding"
of the content. That said, it's not the behavior I would expect. If Mojo is
going to support multi-line headers, I suggest that it allows valid multi-line
headers to be set as a header value and not modified by Mojo.

escaping attributes' values in tag helpers

Code
perl -Mojo -e 'print a->hidden_field(foo => "\"")'

doesn't escape passed value at the moment.

I offer to escape attribute values.
Note from sri in #mojo:

i think we already escape values from $c->param

you move that and more escaping to the lower level

Any opinions?

url_for with placeholders

for exampe we have route

$r->get('/path/to/:id')->to('c#a')->name('abc')

url_for('abc') returns '/path/to'

it would be nice if

url_for('abc', id => 123)
returned '/path/to/123'

symbol + in routes

I wanna separate positive and negative numbers between routes:

This code works fine:

->get('/some/path/-(:number)')->to('c:#foo_negative');

This doesn't:

->get('/some/path/+(:number)')->to('c:#foo_positive');

foo_positive is never called. Mojolicious showes 404 instead.
How can I use symbols like '+', ':' etc in routes?

Proposal: change the way hyphens in URLs are mapped to controller class names

Currently, a route like /:controller with a request like GET /my-account will generate a controller class name of My::Account. Handling of underscores is different in that a request like GET /my_account will generate a class name of MyAccount.

I'm proposing that a request for /my-account would generate a class name of MyAccount, as per the current handling of underscores.

Motivation:

  1. Using a hyphen in a URL to separate words is common practice, more so than using underscores. This is partly driven by SEO tactics for Google, who have always treated hyphens as word separators and underscores not.
  2. There already exists mechanisms to denote (perl) sub-packages for URL space. For example: route('/account')->to(namespace => 'Account') or route('/(*controller)'). Clearly these are not ideal, it would be nice to be able to handle GET /account/settings -> Account::Settings more easily.
  3. I can think of many instances where the desired controller class name generation would want to be as proposed, though I can't think of any where you would want the existing handling. That's likely a lack of imagination on my behalf.
  4. To allow hyphens in the action part of a URL, which I expect is desirable, will require some form of translation to a valid method name. I expect this would likely be replacing hyphens in the URL with underscores in the method name. This would create a scenario where hyphens in URLs are handled consistently; (controller) class names are typically camelCased, (action) subs are underscore_separated.

Mojo dies in fastcgi mode after HEAD request

  1. Start mojo with nginx + spawn-fcgi (used clean lite_app for test):
    spawn-fcgi -M 0777 -n -f 1 -s /tmp/fcgi.sock myapp.pl fastcgi
  2. Request HEAD:
    curl -I 127.0.0.1
  3. Request is served but spawn-fcgi dies

Tested on mojo version 1.15

Create Plack handlers

There should be a plack handler for each of the Mojo servers:
Plack::Handler::Mojo::Server::Hpynotoad
Plack::Handler::Mojo::Server::PSGI

Can't locate object method "new" via package "Mojolicious::Lite"

After updating my mojo with the latest changes from today (12/11/2010), I tried to run my project and realized that my Mojo::Lite daemons were failing. I assume some small change happened that I need to update or perhaps this is just an overlooked development bug that just got introduced. Let me know if you need more info or if there is something I need to change.

[josh803316@jnispc tasc]$ git submodule foreach 'git pull https://github.com/kraih/mojo.git'
Entering 'libs/mojo'
remote: Counting objects: 82, done.
remote: Compressing objects: 100% (57/57), done.
remote: Total 57 (delta 46), reused 0 (delta 0)
Unpacking objects: 100% (57/57), done.
From https://github.com/kraih/mojo

  • branch HEAD -> FETCH_HEAD
    Updating 85ca9f5..74f1b81
    Fast-forward
    Changes | 2 +
    lib/Mojo/Exception.pm | 154 ++-
    lib/Mojo/HelloWorld.pm | 27 +
    lib/Mojo/Template.pm | 8 +
    lib/Mojo/URL.pm | 15 +-
    lib/Mojolicious/Controller.pm | 356 ++++-
    lib/Mojolicious/Guides/Cookbook.pod | 19 +
    lib/Mojolicious/Guides/Growing.pod | 2 +-
    lib/Mojolicious/Renderer.pm | 2 +-
    lib/Mojolicious/Routes.pm | 3 +
    lib/Mojolicious/Session.pm | 6 +-
    lib/Mojolicious/Static.pm | 2482 ++++++++++++++++++++++++++++++++++-
    t/mojo/loader.t | 24 +-
    t/mojo/psgi.t | 27 +-
    t/mojo/template.t | 45 +-
    t/mojo/url.t | 6 +-
    t/mojolicious/exception_lite_app.t | 14 +-
    17 files changed, 3044 insertions(+), 148 deletions(-)

[josh803316@jnispc tasc]$./run
This is Mojo/0.999960
Can't locate object method "new" via package "Mojolicious::Lite" at libs/mojo/lib//Mojolicious/Lite.pm line 26, line 2738.
BEGIN failed--compilation aborted at libs/tasc/Tasc/Daemon/tasc_worker.pl line 18, line 2738.
Can't locate object method "new" via package "Mojolicious::Lite" at libs/mojo/lib//Mojolicious/Lite.pm line 26, line 2738.
BEGIN failed--compilation aborted at libs/tasc/Tasc/Daemon/tasc_worker.pl line 18, line 2738.
Can't locate object method "new" via package "Mojolicious::Lite" at libs/mojo/lib//Mojolicious/Lite.pm line 26, line 2738.
BEGIN failed--compilation aborted at libs/tasc/Tasc/Daemon/tasc_worker.pl line 18, line 2738.
Server available at http://*:3000.
^CSHUTTING DOWN TASC AND CLEANING UP DATABASE
(in cleanup) Can't call method "test" on an undefined value at /web/apps/tasc/bin/../libs/mojo/lib/Mojo/Client.pm line 555 during global destruction.

bug in Mojo::Dom

use strict;
use Mojo::DOM;

my $dom = Mojo::DOM->new;
$dom->parse(<<HTML);

text1 text2

HTML

for my $row (@{$dom->search('table tr')}) {
print $row->name, "\n";
for my $child (@{$row->children}) {
print $child->name, ': ', $child->all_text, "\n";
}
}

tr
table: text1text2
td: text1text1text2
td: text2text1text2

WTF?

tag helpers, select

<%= select_field country => [[Europe => [Germany => 'de']]] %>
does not work as documented (and expected)

outputs:
Germany de

DONE

please kill me! :-)

Can't use string ("http://*:3002") as an ARRAY ref while "strict refs"

I upgraded to the latest Mojo from today and when I try to start my simple mojo lite server I get the following error:

(Code)
my $daemon = Mojo::Server::Daemon->new;
my $port = 3002;

warn "Worker listening on http://127.0.0.1:$port/\n";
$daemon->listen( 'http://*:'.$port );

(Result)
Worker listening on http://127.0.0.1:3002/
Can't use string ("http://*:3002") as an ARRAY ref while "strict refs" in use at ../../../mojo/lib//Mojo/Server/Daemon.pm line 57.

CookieJar.pm permissions

diff --git a/lib/Mojo/CookieJar.pm b/lib/Mojo/CookieJar.pm
old mode 100755
new mode 100644

Some package checking tools are anal about missing chebangs in executable scripts.

text_field improvements

Make text_field(foo => value => "bar") equivalent to text_field(foo => "bar")
I believe 75% of all text_fields takes only two parameters: name and value

I will write patch in nearest 2 days, this issue just not to forget.

Statement handle has gone away in hypnotoad server when using DBI

I run my application by hypnotoad server. The following code don't work.

hypnotoad app.pl

Code

 #!/usr/bin/env perl

use strict;
use warnings;

use Mojolicious::Lite;

use lib './lib';

use DBI;

my $dbh = DBI->connect(
    "DBI:mysql:database=dbname;",
    'user',
    'password',
    {
        RaiseError => 1,
        PrintError => 0,
        AutoCommit => 1,
    }
);

get '/' => sub {
    my $self = shift;

    my $sth = $dbh->prepare("select * from estate");
    $sth->execute;

    $self->render_text('aaa');
};

app->start;

Browser message

Page temporarily unavailable, please come back later.

Log message

Fri Feb 18 13:28:10 2011 error Mojolicious::Routes:434 [5552]: DBD::mysql::st execute failed:MySQL server has gone away. Following SQL is executed. "select * from estate ;" at /home/rxsaprogress/webapp/rxsaprogress/a.pl line 21

Fri Feb 18 13:28:10 2011 error Mojolicious::Controller:311 [5552]: DBD::mysql::st execute failed: MySQL server has gone away. Following SQL is executed. "select * from estate ;" at /home/rxsaprogress/webapp/rxsaprogress/a.pl line 21

t/mojolicious/app.t FAILs in Strawberry Perl 5.12.0.1/MSWin32-x86-multi-thread

Fresh pull from git, looks like the mixed format /rss.xml test needs a fix:

#   Failed test '200 OK'
#   at t/mojolicious/app.t line 271.
#          got: '404'
#     expected: '200'

#   Failed test 'Content-Type: application/rss+xml'
#   at t/mojolicious/app.t line 271.
#          got: 'text/html'
#     expected: 'application/rss+xml'

#   Failed test 'exact match for content'
#   at t/mojolicious/app.t line 271.
#          got: '<!doctype html><html>
#     <head><title>File Not Found</title></head>
#     <body><h2>File Not Found</h2></body>
# </html>
# '
#     expected: '<?xml version="1.0" encoding="UTF-8"?><rss />
# '
# Looks like you failed 3 tests of 182.
t/mojolicious/app.t ........................... 
Dubious, test returned 3 (wstat 768, 0x300)
Failed 3/182 subtests 

Please explain (in docs) how to create apache configs properly

For example we have a mojo application:


 apache:[~/work/test]$ pwd
 /home/dimka/work/test
 
 apache:[~/work/test]$ cat test.mojo
 #!/usr/bin/perl
 
 use warnings;
 use strict;
 
 use utf8;
 use open qw(:std :utf8);
 
 use Mojolicious::Lite;
 
 
 for my $r (qw(/ /abc /def /ghi)) {
     get $r => sub {
         $_[0]->render(text => "$r\n", format => 'txt')
     }
 }
 
 app->start('cgi');

We have apache's config (created using mojo's documentation
http://search.cpan.org/dist/Mojolicious/lib/Mojolicious/Guides/Cookbook.pod#Apache/CGI)


 $ cat /etc/apache2/sites-enabled/test-mojo
 
 <VirtualHost *:80>
    ServerName test.apache.rbscorp.ru
    ServerAlias test.apache
    DocumentRoot /home/dimka/work/test
    ScriptAlias /test /home/dimka/work/test/test.mojo
 </VirtualHost>

We can test this config:


 apache:[~]$ curl -s http://test.apache/test/
 /
 apache:[~]$ curl -s http://test.apache/test/abc
 /abc
 apache:[~]$ curl -s http://test.apache/test/123
 <!doctype html><html>
     <head><title>File Not Found</title></head>
     <body><h2>File Not Found</h2></body>
 </html>

Then we want co create mojo's CGI that will catch root requests:


 <VirtualHost *:80>
         ServerName test.apache.rbscorp.ru
         ServerAlias test.apache
         DocumentRoot /home/dimka/work/test
         ScriptAlias / /home/dimka/work/test/test.mojo
 </VirtualHost>

and now tests aren't passed:


 apache:[~]$ curl -s http://test.apache/   
 /
 apache:[~]$ curl -s http://test.apache/abc
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <html><head>
 <title>404 Not Found</title>
 </head><body>
 <h1>Not Found</h1>
 <p>The requested URL /abc was not found on this server.</p>
 <hr>
 <address>Apache/2.2.16 (Debian) Server at test.apache Port 80</address>
 </body></html>

If the way is exists to create apache config to use Mojo as
root server's controller and cgi?

FastCGI and routes

Have script
use common::sense;
use IO::Socket::INET;
use Mojo::Server::FastCGI;

my $sock = IO::Socket::INET->new(
Proto => 'tcp',
Reuse => 1,
Listen => 100,
LocalPort => 8001,
LocalAddr => 'localhost'
);

die $! unless $sock;

my $fcgi = Mojo::Server::FastCGI->new(
app_class => 'MyApp'
);

$fcgi->{_listen} = $sock;

$fcgi->run;

Routes not work. Always route on '/' or ''.

If set REQUEST_URI and not set SCRIPT_NAME fastcgi parameters then work.

Can't locate object method "new" via package "Test"

After an upgrade to Mojo-1.0 I starting getting this error. This only occurred with 1.0 not any of the previous releases.

$ ./test routes
Can't locate object method "new" via package "Test" at /usr/lib64/perl5/vendor_perl/5.12.2/Mojo/Server.pm line 23.

Look like it occurs when we use the controller to generate the routes.

You can do 'mojo generate app Test' and apply this patch to replicate the problem with 1.0.

diff -r -U3 test.orig/lib/Test/Example.pm test.new/lib/Test/Example.pm
--- test.orig/lib/Test/Example.pm 2011-01-05 09:52:23.424973581 +1030
+++ test.new/lib/Test/Example.pm 2011-01-05 09:59:05.306973582 +1030
@@ -5,6 +5,14 @@

use base 'Mojolicious::Controller';

+sub route {

  • my $r = shift;
  • $r->route('/welcome')->to('example#welcome', id => 1);
    +}

This action will render a template

sub welcome {
my $self = shift;
diff -r -U3 test.orig/lib/Test.pm test.new/lib/Test.pm
--- test.orig/lib/Test.pm 2011-01-05 09:52:23.422973581 +1030
+++ test.new/lib/Test.pm 2011-01-05 09:51:02.141973560 +1030
@@ -3,6 +3,8 @@
use strict;
use warnings;

+use Test::Example;
+
use base 'Mojolicious';

This method will run once at server start

@@ -16,7 +18,7 @@
my $r = $self->routes;

 # Normal route to controller
  • $r->route('/welcome')->to('example#welcome', id => 1);
  • Test::Example::route($r);
    }

1;

POD linking back to CPAN for non-existant Mojolicous module.

There are bad links back to the CPAN in the Mojolicous POD.
'Mojolicous' should be 'Mojolicious'.

grep -lr 'Mojolicous' *

lib/Mojolicious/Lite.pm
lib/Mojolicious/Plugins.pm
lib/Mojolicious/Plugin/I18n.pm
lib/Mojolicious/Plugin/TagHelpers.pm
lib/Mojolicious/Plugin/DefaultHelpers.pm
lib/Mojolicious/Plugin/EpRenderer.pm
lib/Mojolicious/Plugin/HeaderCondition.pm
lib/Mojolicious/Plugin/RequestTimer.pm
lib/Mojolicious/Plugin/Charset.pm
lib/Mojolicious/Plugin/JsonConfig.pm
lib/Mojolicious/Plugin/PodRenderer.pm
lib/Mojolicious/Plugin/AgentCondition.pm
lib/Mojolicious/Plugin/EplRenderer.pm
lib/Mojolicious/Plugin/Config.pm
lib/Mojolicious/Plugin/PoweredBy.pm
lib/Mojolicious/Plugin.pm
lib/Mojolicious/Controller.pm
lib/Mojolicious/Commands.pm

FastCGI

Mojo::Server::FastCGI.

Cant use tcp or unix socket for listen. Can improve it?

test fails: t/mojolicious/websocket_tls_proxy_lite_app.t

t/mojolicious/websocket_tls_proxy_lite_app.t .. Use of uninitialized value $error in concatenation (.) or string at /home/hideki/github/mojo/lib/Mojo/IOLoop.pm line 822.
Unhandled event error:  at /home/hideki/github/mojo/lib/Mojo/IOLoop.pm line 822.
Can't call method "body" on an undefined value at t/mojolicious/websocket_tls_proxy_lite_app.t line 134.
# Looks like your test exited with 255 before it could output anything.
t/mojolicious/websocket_tls_proxy_lite_app.t .. Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 16/16 subtests

Test Summary Report
-------------------
t/mojolicious/websocket_tls_proxy_lite_app.t (Wstat: 65280 Tests: 0 Failed: 0)
  Non-zero exit status: 255
  Parse errors: Bad plan.  You planned 16 tests but ran 0.
Files=1, Tests=0,  0 wallclock secs ( 0.04 usr  0.00 sys +  0.20 cusr  0.02 csys =  0.26 CPU)
Result: FAIL
Summary of my perl5 (revision 5 version 12 subversion 1) configuration:

  Platform:
    osname=linux, osvers=2.6.18-128.2.1.el5xen, archname=x86_64-linux
    uname='linux sv3.hidekiy.com 2.6.18-128.2.1.el5xen #1 smp tue jul 14 07:07:49 edt 2009 x86_64 x86_64 x86_64 gnulinux '
    config_args='-de -Dprefix=/home/hideki/perl5/perlbrew/perls/perl-5.12.1'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2',
    cppflags='-fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
    ccversion='', gccversion='4.1.2 20080704 (Red Hat 4.1.2-48)', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib /lib64 /usr/lib64 /usr/local/lib64
    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc
    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
    libc=, so=so, useshrplib=false, libperl=libperl.a
    gnulibc_version='2.5'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector'


Characteristics of this binary (from libperl):
  Compile-time options: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP USE_64_BIT_ALL
                        USE_64_BIT_INT USE_LARGE_FILES USE_PERLIO
                        USE_PERL_ATOF
  Built under linux
  Compiled at May 17 2010 20:05:09
  %ENV:
    PERL_CPANM_OPT="--skip-installed"
  @INC:
    /home/hideki/perl5/perlbrew/perls/perl-5.12.1/lib/site_perl/5.12.1/x86_64-linux
    /home/hideki/perl5/perlbrew/perls/perl-5.12.1/lib/site_perl/5.12.1
    /home/hideki/perl5/perlbrew/perls/perl-5.12.1/lib/5.12.1/x86_64-linux
    /home/hideki/perl5/perlbrew/perls/perl-5.12.1/lib/5.12.1
    .

IOLoop listen and eval

If IOLoop unable to open socket it dies. But it also set up some internal variables.
At the moment we can not use eval { $loop->listen(...) }; because if listen() dies whole IOLoop instance became broken.

But if we could move
https://github.com/kraih/mojo/blob/master/lib/Mojo/IOLoop.pm#L370-371

to the end of sub this trick would be possible.

Somethink like

eval { $ioloop->connect(%param)};
warn "Ooops. Something wrong, but we continue" if $@;

Might be useful.

I don't see what it can damage and all test passes with such changes.

Mojolicious routes

In m9s routes command there's no any information about bridges and request methods attached to route.
It was great to add something like "m9s routes verbose"
to display
/login (?-xism:^/login) [post]
/login (?-xism:^/login) [get]
/ (?-xism:^) [any] [bridge: auth]
/pages/add (?-xism:^/pages/add) [post]

Mojo static templates

I have a little project that uses Mojo. I wanted to use Mojo's exception screen inside my <div> block but couldn't because it is placed into <html> inside M::Controller.

It would be nice if a user could reuse these blocks

redirect_to can't think about base URL

redirect_to don't render right URL path using proxy server .

The problem will be fixed the following change(Mojolicious::Controller redirect_to)

Before

$headers->location($self->url_for(@_)->to_abs);

After

$headers->location($self->url_for(@_));

It is possiple to control mojo without editing the apache config file?

It is possible to use the Mojolicious Framework without editing the Apache config. For example only with .htaccess or something else.
I don't found a solution for that.
The background is that sometimes Apache files are generated automatically and there is no chance for me to edit it them to parse the ScriptAlias in the file.

Mojo::Client->async seems broken

I'm trying to use the async method for the client but it never seems to generate a request and I don't see anything in the callback. I created a small test:

#!/usr/bin/perl
use Mojo::Client;
use Mojo::Log;

my $method = 'get';
my $full_uri = "http://mojolicio.us/";

my $client = Mojo::Client->new;
my $async = $client->async;
my $log = Mojo::Log->new(
path => '/tmp/mojo_async.log',
level => 'debug',
);

I never see the log message but if I change to normal client I do

$async->$method( $full_uri, sub {
my ($c, $tx) = @_;
$log->debug("Made it inside async");
})->start;

CORE
Perl (5.012003, linux)
Mojolicious (1.11, Smiling Cat Face With Heart-Shaped Eyes)

OPTIONAL
IO::Epoll (not installed)
IO::KQueue (not installed)
IO::Socket::SSL (1.38)
Net::Rendezvous::Publish (not installed)

frozen pre-1.0 FAILs on perl 5.010001 on MSWin32 (Strawberry Perl)

From .cpanm\build.log on a freshly-cloned git

cpanm (App::cpanminus) 1.0006 on perl 5.010001 built for MSWin32-x86-multi-thread
Work directory is /.cpanm/work/1278379582.2404
You have make C:\strawberry\c\bin\dmake.exe
You have LWP 5.834
Falling back to Archive::Tar 1.60
Entering C:/Users/zakame/mojo
Configuring C:/Users/zakame/mojo
Running Makefile.PL
Writing Makefile for Mojolicious
-> OK
Finding PREREQ from Makefile ...
Checking if you have Scalar::Util 0 ... Yes (1.23)
Checking if you have FindBin 0 ... Yes (1.50)
Checking if you have File::Spec 0 ... Yes (3.31)
Checking if you have Storable 0 ... Yes (2.21)
Checking if you have Encode 0 ... Yes (2.39)
Checking if you have Test::Builder 0 ... Yes (0.94)
Checking if you have POSIX 0 ... Yes (1.17)
Checking if you have IO::Poll 0 ... Yes (0.07)
Checking if you have Digest::MD5 0 ... Yes (2.39)
Checking if you have I18N::LangTags 0 ... Yes (0.35)
Checking if you have File::Path 0 ... Yes (2.08)
Checking if you have File::Spec::Functions 0 ... Yes (3.30)
Checking if you have Errno 0 ... Yes (1.11)
Checking if you have Test::Harness 0 ... Yes (3.21)
Checking if you have File::Copy 0 ... Yes (2.14)
Checking if you have Getopt::Long 0 ... Yes (2.38)
Checking if you have IO::File 0 ... Yes (1.14)
Checking if you have Data::Dumper 0 ... Yes (2.126)
Checking if you have ExtUtils::MakeMaker 0 ... Yes (6.56)
Checking if you have MIME::QuotedPrint 0 ... Yes (3.09)
Checking if you have Time::HiRes 0 ... Yes (1.9721)
Checking if you have Carp 0 ... Yes (1.11)
Checking if you have Test::More 0 ... Yes (0.94)
Checking if you have MIME::Base64 0 ... Yes (3.09)
Checking if you have IO::Socket 0 ... Yes (1.31)
Checking if you have File::Temp 0 ... Yes (0.22)
Checking if you have Locale::Maketext 0 ... Yes (1.13)
Checking if you have File::Basename 0 ... Yes (2.77)
Checking if you have Cwd 0 ... Yes (3.31)
Building and testing . for .
Skip blib\lib\Test\Mojo\Server.pm (unchanged)
Skip blib\lib\Mojo\Template.pm (unchanged)
Skip blib\lib\MojoX\Routes\Pattern.pm (unchanged)
Skip blib\lib\Mojo\JSON.pm (unchanged)
Skip blib\lib\Mojo\ByteStream.pm (unchanged)
Skip blib\lib\MojoX\Session\Cookie\Controller.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin\PodRenderer.pm (unchanged)
Skip blib\lib\Mojo\Log.pm (unchanged)
Skip blib\lib\Mojo\Stateful.pm (unchanged)
Skip blib\lib\Mojo\Command\Generate.pm (unchanged)
Skip blib\lib\Mojolicious\Guides.pod (unchanged)
Skip blib\lib\Mojolicious\Plugin\TagHelpers.pm (unchanged)
Skip blib\lib\Mojo\Transaction.pm (unchanged)
Skip blib\lib\Mojo\Filter.pm (unchanged)
Skip blib\lib\Mojo\Cookie\Response.pm (unchanged)
Skip blib\lib\MojoX\Routes.pm (unchanged)
Skip blib\lib\Mojo\CookieJar.pm (unchanged)
Skip blib\lib\MojoX\Routes\Match.pm (unchanged)
Skip blib\lib\Test\Mojo.pm (unchanged)
Skip blib\lib\Mojo\Cookie.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin\I18n.pm (unchanged)
Skip blib\lib\Mojo\Command\Psgi.pm (unchanged)
Skip blib\lib\Mojo\Server.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin\DefaultHelpers.pm (unchanged)
Skip blib\lib\Mojo\Server\PSGI.pm (unchanged)
Skip blib\lib\Mojo\Path.pm (unchanged)
Skip blib\lib\MojoX\Controller.pm (unchanged)
Skip blib\lib\Mojo\Upload.pm (unchanged)
Skip blib\lib\Mojo\Date.pm (unchanged)
Skip blib\lib\Mojolicious\Lite.pm (unchanged)
Skip blib\lib\Mojolicious\Command\Generate\LiteApp.pm (unchanged)
Skip blib\lib\Mojolicious\Command\Routes.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin\HeaderCondition.pm (unchanged)
Skip blib\lib\Mojolicious\Commands.pm (unchanged)
Skip blib\lib\Mojo\HelloWorld.pm (unchanged)
Skip blib\lib\Mojo\Command.pm (unchanged)
Skip blib\lib\Mojo\Server\CGI.pm (unchanged)
Skip blib\lib\MojoX\Renderer.pm (unchanged)
Skip blib\lib\MojoX\Types.pm (unchanged)
Skip blib\lib\Mojo\Message.pm (unchanged)
Skip blib\lib\Mojolicious\Guides\Cookbook.pod (unchanged)
Skip blib\lib\Mojolicious\Guides\FAQ.pod (unchanged)
Skip blib\lib\Mojolicious\Guides\Rendering.pod (unchanged)
Skip blib\lib\Mojo\Cookie\Request.pm (unchanged)
Skip blib\lib\Mojo\Command\Version.pm (unchanged)
Skip blib\lib\Mojo\Base.pm (unchanged)
Skip blib\lib\Mojo\Transaction\HTTP.pm (unchanged)
Skip blib\lib\Mojo\Asset\File.pm (unchanged)
Skip blib\lib\Mojo\Content.pm (unchanged)
Skip blib\lib\Mojo\Loader.pm (unchanged)
Skip blib\lib\Mojo\Content\MultiPart.pm (unchanged)
Skip blib\lib\Mojo\Command\Daemon.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin\PoweredBy.pm (unchanged)
Skip blib\lib\Mojolicious\Command\Generate\App.pm (unchanged)
Skip blib\lib\Mojolicious\Guides\CodingGuidelines.pod (unchanged)
Skip blib\lib\Mojo\Server\FastCGI.pm (unchanged)
Skip blib\lib\MojoX\Dispatcher\Routes.pm (unchanged)
Skip blib\lib\MojoX\Session\Cookie.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin\Charset.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin\EpRenderer.pm (unchanged)
Skip blib\lib\Mojo\Asset\Memory.pm (unchanged)
Skip blib\lib\Mojolicious\Plugins.pm (unchanged)
Skip blib\lib\Mojolicious\Guides\Cheatsheet.pod (unchanged)
Skip blib\lib\Mojo\Transaction\Single.pm (unchanged)
Skip blib\lib\Mojo\Commands.pm (unchanged)
Skip blib\lib\Mojo\URL.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin\RequestTimer.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin\JsonConfig.pm (unchanged)
Skip blib\lib\Mojo\Message\Response.pm (unchanged)
Skip blib\lib\Mojo\Command\Fastcgi.pm (unchanged)
Skip blib\lib\Mojolicious.pm (unchanged)
Skip blib\lib\Mojo\Filter\Chunked.pm (unchanged)
Skip blib\lib\Mojo\Home.pm (unchanged)
Skip blib\lib\Mojo\Transaction\WebSocket.pm (unchanged)
Skip blib\lib\Mojo\Command\Generate\App.pm (unchanged)
Skip blib\lib\Mojo\Command\Generate\Gitignore.pm (unchanged)
Skip blib\lib\Mojo\DOM.pm (unchanged)
Skip blib\lib\Mojo\Command\Cgi.pm (unchanged)
Skip blib\lib\Mojo\Content\Single.pm (unchanged)
Skip blib\lib\Mojolicious\Controller.pm (unchanged)
Skip blib\lib\Mojo\Server\Daemon.pm (unchanged)
Skip blib\lib\Mojo\Exception.pm (unchanged)
Skip blib\lib\Mojo.pm (unchanged)
Skip blib\lib\Mojo\Command\Test.pm (unchanged)
Skip blib\lib\Mojolicious\Command\Generate.pm (unchanged)
Skip blib\lib\Mojo\IOLoop.pm (unchanged)
Skip blib\lib\Mojo\Asset.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin\EplRenderer.pm (unchanged)
Skip blib\lib\MojoX\Dispatcher\Routes\Controller.pm (unchanged)
Skip blib\lib\Mojo\Message\Request.pm (unchanged)
Skip blib\lib\Mojo\Command\Get.pm (unchanged)
Skip blib\lib\Mojo\Server\Daemon\Prefork.pm (unchanged)
Skip blib\lib\Mojo\Headers.pm (unchanged)
Skip blib\lib\Mojo\Command\DaemonPrefork.pm (unchanged)
Skip blib\lib\Mojo\Client.pm (unchanged)
Skip blib\lib\MojoX\Dispatcher\Static.pm (unchanged)
Skip blib\lib\Mojolicious\Command\Inflate.pm (unchanged)
Skip blib\lib\Mojolicious\Plugin\AgentCondition.pm (unchanged)
Skip blib\lib\Mojolicious\Guides\Routing.pod (unchanged)
Skip blib\lib\Mojo\Parameters.pm (unchanged)
Skip blib\lib\Mojo\Command\Generate\Makefile.pm (unchanged)
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e "cp" -- script/mojolicious blib\script\mojolicious
pl2bat.bat blib\script\mojolicious
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e "cp" -- script/mojo blib\script\mojo
pl2bat.bat blib\script\mojo
C:\strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib\lib', 'blib\arch')" t/*.t t/*/*.t t/*/*/*.t t/*/*/*/*.t
t/mojo/apache_cgi.t ........................... skipped: Mac OS X required for this test!
t/mojo/apache_fastcgi.t ....................... skipped: Mac OS X required for this test!
No such signal: SIGUSR1 at C:\Users\zakame\mojo\blib\lib/Mojo/Server/Daemon.pm line 73.
No such signal: SIGUSR1 at C:\Users\zakame\mojo\blib\lib/Mojo/Server/Daemon.pm line 73.
t/mojo/app.t .................................. ok
t/mojo/asset.t ................................ ok
t/mojo/base.t ................................. ok
t/mojo/bytestream.t ........................... ok
t/mojo/cgi.t .................................. ok
t/mojo/client.t ............................... skipped: set TEST_CLIENT to enable this test (internet connection required!)
t/mojo/content.t .............................. ok
t/mojo/cookie.t ............................... ok
t/mojo/cookiejar.t ............................ ok
t/mojo/daemon.t ............................... skipped: set TEST_DAEMON to enable this test (developer only!)
t/mojo/daemon_prefork.t ....................... skipped: set TEST_PREFORK to enable this test (developer only!)
t/mojo/date.t ................................. ok
t/mojo/dom.t .................................. ok
t/mojo/fastcgi.t .............................. ok
t/mojo/headers.t .............................. ok
t/mojo/home.t ................................. ok
t/mojo/ioloop.t ............................... ok
t/mojo/json.t ................................. ok
t/mojo/loader.t ............................... ok
t/mojo/message.t .............................. ok
t/mojo/parameters.t ........................... ok
t/mojo/path.t ................................. ok
t/mojo/psgi.t ................................. ok
t/mojo/server.t ............................... ok
t/mojo/stateful.t ............................. ok
t/mojo/template.t ............................. ok
t/mojo/url.t .................................. ok
No such signal: SIGUSR1 at C:\Users\zakame\mojo\blib\lib/Mojo/Server/Daemon.pm line 73.

#   Failed test at t/mojolicious/app.t line 105.
#          got: '

# Hello Baerbel.

# Hello Wolfgang.

# '
#     expected: '
# Hello Baerbel.
# Hello Wolfgang.
# '
# Looks like you failed 1 test of 178.
t/mojolicious/app.t ........................... 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/178 subtests 
No such signal: SIGUSR1 at C:\Users\zakame\mojo\blib\lib/Mojo/Server/Daemon.pm line 73.
t/mojolicious/charset_lite_app.t .............. ok
No such signal: SIGUSR1 at C:\Users\zakame\mojo\blib\lib/Mojo/Server/Daemon.pm line 73.
t/mojolicious/dispatcher_lite_app.t ........... ok
No such signal: SIGUSR1 at C:\Users\zakame\mojo\blib\lib/Mojo/Server/Daemon.pm line 73.
t/mojolicious/embedded_lite_app.t ............. ok
No such signal: SIGUSR1 at C:\Users\zakame\mojo\blib\lib/Mojo/Server/Daemon.pm line 73.
t/mojolicious/i18n_lite_app.t ................. ok
No such signal: SIGUSR1 at C:\Users\zakame\mojo\blib\lib/Mojo/Server/Daemon.pm line 73.
t/mojolicious/json_config_lite_app.t .......... ok
No such signal: SIGUSR1 at C:\Users\zakame\mojo\blib\lib/Mojo/Server/Daemon.pm line 73.
No such signal: SIGUSR1 at C:\Users\zakame\mojo\blib\lib/Mojo/Server/Daemon.pm line 73, <DATA> line 35003.
No such signal: SIGUSR1 at C:\Users\zakame\mojo\blib\lib/Mojo/Server/Daemon.pm line 73, <DATA> line 35003.
No such signal: SIGUSR1 at C:\Users\zakame\mojo\blib\lib/Mojo/Server/Daemon.pm line 73, <DATA> line 35003.
t/mojolicious/lite_app.t ...................... ok
No such signal: SIGUSR1 at C:\Users\zakame\mojo\blib\lib/Mojo/Server/Daemon.pm line 73.
t/mojolicious/pod_renderer_lite_app.t ......... ok
No such signal: SIGUSR1 at C:\Users\zakame\mojo\blib\lib/Mojo/Server/Daemon.pm line 73.
t/mojolicious/production_app.t ................ ok
No such signal: SIGUSR1 at C:\Users\zakame\mojo\blib\lib/Mojo/Server/Daemon.pm line 73.
t/mojolicious/twinkle_lite_app.t .............. ok
No such signal: SIGUSR1 at C:\Users\zakame\mojo\blib\lib/Mojo/Server/Daemon.pm line 73.
t/mojolicious/upload_lite_app.t ............... ok
No such signal: SIGUSR1 at C:\Users\zakame\mojo\blib\lib/Mojo/Server/Daemon.pm line 73.
t/mojolicious/websocket_lite_app.t ............ ok
No such signal: SIGUSR1 at C:\Users\zakame\mojo\blib\lib/Mojo/Server/Daemon.pm line 73.
t/mojolicious/websocket_proxy_lite_app.t ...... ok
t/mojolicious/websocket_tls_proxy_lite_app.t .. skipped: set TEST_TLS to enable this test (developer only!)
t/mojox/dispatcher/routes.t ................... ok
t/mojox/dispatcher/routes/controller.t ........ ok
t/mojox/renderer.t ............................ ok
t/mojox/routes/pattern.t ...................... ok
t/mojox/routes/routes.t ....................... ok
t/pod.t ....................................... skipped: set TEST_POD to enable this test (developer only!)
t/pod_coverage.t .............................. skipped: set TEST_POD to enable this test (developer only!)

Test Summary Report
-------------------
t/mojolicious/app.t                         (Wstat: 256 Tests: 178 Failed: 1)
  Failed test:  63
  Non-zero exit status: 1
Files=50, Tests=2797, 24 wallclock secs ( 0.95 usr +  0.28 sys =  1.23 CPU)
Result: FAIL
Failed 1/50 test programs. 1/2797 subtests failed.
dmake.exe:  Error code 255, while making 'test_dynamic'
-> FAIL Installing . failed. See \.cpanm\build.log for details.

Occasional Mojo IOLoop Errors during global destruction (on Ctrl-C shutdown)

I'm not sure what this is related to but occasionally when I shutdown my Mojo with Ctrl-C I get the following errors. It happens somewhat randomly. I'll try to create a test case for this but not really sure how.

Use of uninitialized value $_ in hash element at /web/apps/tasc/bin/../libs/mojo/lib/Mojo/IOLoop.pm line 499 during global destruction.
Use of uninitialized value $id in hash element at /web/apps/tasc/bin/../libs/mojo/lib/Mojo/IOLoop.pm line 1345 during global destruction.
Use of uninitialized value $id in hash element at /web/apps/tasc/bin/../libs/mojo/lib/Mojo/IOLoop.pm line 1348 during global destruction.

CORE
Perl (5.010000, linux)
Mojolicious (0.999960, Hot Beverage)

OPTIONAL
IO::Epoll (0.02)
IO::KQueue (not installed)
IO::Socket::SSL (1.34)
Net::Rendezvous::Publish (not installed)

if response is big, nginx + mojo daemon is fail

I use nginx and mojo daemon in deploy.

If a mojolicious app render big response (~ 50 kb), than nginx show only part of data.
Nginx proxied requests over HTTP 1.0, without keepalive.

If Mojo replaced by Apache or Plackup, then nginx correctly show all the data.

How to make the Mojo daemon working with nginx correctly?

I try --keepalive 0 and --keepaliverequests 1, it doesn't work with nginx :(

Mojo::JSON encode incorrectly treat some strings as numbers

$ perl -MMojo::JSON -E 'say Mojo::JSON->encode({version => "1.0", package => "My-Package"});'
{"version":1.0,"package":"My-Package"}

I think 'version' value should be quoted. Otherwise, javascript and other JSON parsers can't distinguish it this from plain '1'.

typo error

line 322 lib/Mojolicious/Guides/Growing.pm must be
% perl t/login.t
instead of
% perl t/login.pl

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.