17 private links
Convos is the simplest way to use IRC. It is always online, and accessible to your web browser, both on desktop and mobile. Run it on your home server, or cloud service easily. It can be deployed to Docker-based cloud services, or you can just run it as a normal Mojolicious application.
Non-blocking Mojolicious applications have the potential to scale to thousands of concurrent connections.
However, most operating systems are not configured to handle that sort of work out-of-the-box. This page details some of the tweaks your server will likely need before it can successfully handle very high concurrent loads. Note that if any part of your application blocks, much of this advice is premature optimization or even irrelevant.
Disclaimer
These tuning parameters are not a substitute for a sane load balancing scheme: they will help get the most out of a single server, but any single machine can and will fall over eventually. One benefit of Mojolicious/hypnotoad is that the multi-process model encourages an application architecture that can be easily scaled across servers (horizontally), and any serious application deployment should be doing exactly that.
% mojo generate lite_app optional
...
% $EDITOR optional
One could mark the date as optional by giving it a default value of undef
:
#!/usr/bin/env perl
use Mojolicious::Lite -signatures;
get '/vote/:value/*when' => { when => undef } => sub ($c) {
my $value = $c->stash('value');
my $when = $c->stash('when');
$c->render(
format => 'txt',
text => $value . ' ' . ( defined $when ? $when : 'nope' ) . "\n"
);
};
app->start;
which then allows with-or-without the date queries:
% ./optional get /vote/42 2>/dev/null
42 nope
% ./optional get /vote/42/2020/01/07 2>/dev/null
42 2020/01/07
%