Acme-CPANModulesBundle-Import-MojoliciousAdvent-2017

 view release on metacpan or  search on metacpan

devdata/https_mojolicious.io_blog_2017_12_01_day-1-getting-started  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2017_12_02_day-2-the-stash  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2017_12_03_day-3-using-named-routes  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2017_12_04_day-4-dont-fear-the-full-app  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2017_12_05_day-5-your-apps-built-in-commands  view on Meta::CPAN

<h3>The version Command</h3>

<p>The <a href="http://mojolicious.org/perldoc/Mojolicious/Command/version"><code>version</code></a> command is a simple utility to check your Mojolicious installation.</p>

<p>It outputs your current version of Perl and Mojolicious along with any installed optional libraries.
For example, you&#39;ll want to install <a href="https://metacpan.org/pod/IO::Socket::SSL">IO::Socket::SSL</a> if you want to fetch or serve sites over HTTPS.
It then checks to see if there is an updated version of Mojolicious available.</p>

<h3>The routes Command</h3>

<p>Once you started writing your application, you might want to introspect it a little bit, especially for debugging purposes.
The most straightforward command of that nature is <a href="http://mojolicious.org/perldoc/Mojolicious/Command/routes"><code>routes</code></a>.
Simply run it on your app to see what routes you have defined.</p>

<p>For example, we can run it on Santa&#39;s application from <a href="/blog/2017/12/03/day-3-using-named-routes">day 3</a>.</p>

<pre><code>$ perl santa.pl routes
/toy/:toy_name  GET  &quot;toy&quot;
/meet/:name     GET  &quot;staff&quot;
/               GET  &quot;home&quot;
</code></pre>

devdata/https_mojolicious.io_blog_2017_12_05_day-5-your-apps-built-in-commands  view on Meta::CPAN


<pre><code>$ perl santa.pl routes -v
/toy/:toy_name  ....  GET  &quot;toy&quot;    ^\/toy/([^/.]+)/?(?:\.([^/]+))?$
/meet/:name     ....  GET  &quot;staff&quot;  ^\/meet/([^/.]+)/?(?:\.([^/]+))?$
/               ....  GET  &quot;home&quot;   ^/?(?:\.([^/]+))?$
</code></pre>

<p>This output includes all the same stuff as before but this time it also adds a few extra items.
Certain routes are more complex, and while all these were simple and so no flags are shown, if one were an <code>under</code> route or a <code>websocket</code> it would be noted where the <code>....</code> are.
Finally it includes a pattern that is what is actually matched by the router.
This can be helpful sometimes when debugging why certain requests match (or more likely don&#39;t match) a certain route.
Note that the router checks each route in order top to bottom, the first to match is what is used.</p>

<h3>The get Command</h3>

<p>Now we&#39;re getting to the fun stuff!</p>

<p>Mojolicious comes with a <a href="http://mojolicious.org/perldoc/Mojo/UserAgent">user agent</a> and lots of post-processing power, including <a href="http://mojolicious.org/perldoc/Mojo/DOM">HTML/XML</a> and <a href="http://mojolicious.org/perldoc...
This command exposes those features together on the command line, like a smart version of cURL or wget.</p>

<p>Output is written to STDOUT so that you can redirect the result to a file if you&#39;d like.

devdata/https_mojolicious.io_blog_2017_12_05_day-5-your-apps-built-in-commands  view on Meta::CPAN

<ul>
<li>You can POST or PUT or DELETE data.</li>
<li>It handles HTTP basic authentication using <code>username:password@</code> in the URL.</li>
<li>You can submit forms, even with file uploads using the standard <code>@filename</code> syntax.</li>
<li>You can pipe data to the command if you just want to send the raw contents of a file rather than url-encode it.</li>
<li>See lots more examples in the <a href="http://mojolicious.org/perldoc/Mojolicious/Command/get#SYNOPSIS">documentation</a>.</li>
</ul>

<p>But I haven&#39;t even touched on its coolest feature yet.
This command also works on your application when you request a relative url.
This is so handy for debugging requests during rapid development; you don&#39;t even need a browser!</p>

<pre><code>perl santa.pl get /meet/rudolph &#39;p&#39; text
</code></pre>

<h3>The eval Command</h3>

<p>Finally in this whirlwind tour, I&#39;ll show you my favorite command.
The <a href="http://mojolicious.org/perldoc/Mojolicious/Command/eval"><code>eval</code></a> command.
This command has the magic power to run one-off commands using your application!
The application is available as <code>app</code> in your one-liner.</p>

devdata/https_mojolicious.io_blog_2017_12_05_day-5-your-apps-built-in-commands  view on Meta::CPAN

<pre><code>perl myapp.pl eval &#39;app-&gt;pg-&gt;migrations-&gt;migrate&#39;
</code></pre>

<p>Or just check that the database is reachable.</p>

<pre><code>perl myapp.pl eval -V &#39;app-&gt;pg-&gt;db-&gt;query(&quot;SELECT NOW()&quot;)-&gt;hash&#39;
</code></pre>

<p>These last two database examples assumed that your app was using <a href="http://mojolicious.org/perldoc/Mojo/Pg">Mojo::Pg</a> but similar one-liners could work for any database that your app knows about.</p>

<p>There really is nothing like debugging or administering your application without having to copy and paste a bunch of your logic from your app to some script.
Although if you really find yourself using the <code>eval</code> command for the same tasks often ... well that should wait until tomorrow.</p>

              </section>
              <small><p><a href="https://commons.wikimedia.org/w/index.php?curid=44576486">Image</a> by <a href="//commons.wikimedia.org/w/index.php?title=User:Gsaisudha75&amp;action=edit&amp;redlink=1" title="User:Gsaisudha75 (page does not exist)">...
</small>

              <p class="tags">
                <span>Tagged in </span>:
                  <a href="/blog/tag/advent/">advent</a>,
                  <a href="/blog/tag/command/">command</a>,
                  <a href="/blog/tag/debugging/">debugging</a>,
                  <a href="/blog/tag/administration/">administration</a>
              </p>


                  <div class="bio cf">

                      <div class="gravatar">
                        <img alt="author image" src="https://secure.gravatar.com/avatar/cc767569f5863a7c261991ee5b23f147">
                      </div>
                      <div class="about">

devdata/https_mojolicious.io_blog_2017_12_05_day-5-your-apps-built-in-commands  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2017_12_06_day-6-adding-your-own-commands  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2017_12_07_day-7-using-template-variants-for-a-beta-landing-page  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2017_12_08_day-8-mocking-a-rest-api  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2017_12_09_day-9-the-best-way-to-test  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2017_12_10_day-10-give-the-customer-what-they-want  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2017_12_11_day-11-useragent-content-generators  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2017_12_12_day-12-more-than-a-base-class  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2017_12_13_day-13-more-about-roles  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2017_12_14_day-14-you-promised-to-call  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2017_12_15_day-15-start-a-new-yancy-app  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2017_12_16_day-16-the-secret-life-of-sessions  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2017_12_17_day-17-the-wishlist-app  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2017_12_18_day-18-the-wishlist-model  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2017_12_19_day-19-make-your-app-installable  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2017_12_20_day-20-practical-testing  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2017_12_21_day-21-virtually-a-lumberjack  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2017_12_22_day-22-how-to-build-a-public-rest-api  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2017_12_23_day-23-one-liners-for-fun-and-profit  view on Meta::CPAN

<p>However, once you start using them, I think you&#39;ll find yourself using them often.</p>

              </section>
              <small><p><a href="https://commons.wikimedia.org/w/index.php?curid=21375125">Image</a> by © <a href="http://www.royan.com.ar" rel="nofollow">Jorge Royan</a>, <a href="https://creativecommons.org/licenses/by-sa/3.0" title="Creative Co...
</small>

              <p class="tags">
                <span>Tagged in </span>:
                  <a href="/blog/tag/advent/">advent</a>,
                  <a href="/blog/tag/command/">command</a>,
                  <a href="/blog/tag/debugging/">debugging</a>,
                  <a href="/blog/tag/lite/">lite</a>
              </p>


                  <div class="bio cf">

                      <div class="gravatar">
                        <img alt="author image" src="https://secure.gravatar.com/avatar/cc767569f5863a7c261991ee5b23f147">
                      </div>
                      <div class="about">

devdata/https_mojolicious.io_blog_2017_12_23_day-23-one-liners-for-fun-and-profit  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>

devdata/https_mojolicious.io_blog_2017_12_24_day-24-release-and-wrap-up  view on Meta::CPAN

    <a href="/blog/tag/advent/">advent</a>
    <a href="/blog/tag/angular/">Angular</a>
    <a href="/blog/tag/api/">api</a>
    <a href="/blog/tag/app/">app</a>
    <a href="/blog/tag/authentication/">authentication</a>
    <a href="/blog/tag/caching/">caching</a>
    <a href="/blog/tag/carton/">carton</a>
    <a href="/blog/tag/command/">command</a>
    <a href="/blog/tag/css/">css</a>
    <a href="/blog/tag/dancer/">dancer</a>
    <a href="/blog/tag/debugging/">debugging</a>
    <a href="/blog/tag/deployment/">deployment</a>
    <a href="/blog/tag/development/">development</a>
    <a href="/blog/tag/documentation/">documentation</a>
    <a href="/blog/tag/example/">example</a>
    <a href="/blog/tag/fluent/">fluent</a>
    <a href="/blog/tag/full/">full</a>
    <a href="/blog/tag/graphql/">graphql</a>
    <a href="/blog/tag/growing/">growing</a>
    <a href="/blog/tag/headers/">headers</a>
    <a href="/blog/tag/hello-world/">hello world</a>



( run in 0.873 second using v1.01-cache-2.11-cpan-49f99fa48dc )