<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px"><div id="yui_3_16_0_1_1436469380853_27112"><span>FWIW I had to add a bit to the Catalyst session stuff to enable that store in cookie thing, here's the diff:</span></div><div id="yui_3_16_0_1_1436469380853_27112"><span><br></span></div><div id="yui_3_16_0_1_1436469380853_27112" dir="ltr"><a href="https://metacpan.org/diff/file?target=JJNAPIORK/Catalyst-Plugin-Session-0.40/&amp;source=JJNAPIORK/Catalyst-Plugin-Session-0.39/" id="yui_3_16_0_1_1436469380853_27541">Search the CPAN - metacpan.org</a><br></div><div style="width:450px; font-family: 'Georgia', 'Times', 'Times New Roman', 'serif';margin-top:5px; margin-bottom: 5px; background-color: #ffffff;" contenteditable="false" id="enhancrCard_0" class="link-enhancr-attachment link-enhancr-element "><table class="link-enhancr-element" cellspacing="0" cellpadding="0" border="0" style="width:450px; height:auto; position: relative; display: block;" id="yui_3_16_0_1_1436469380853_28040"><tbody id="yui_3_16_0_1_1436469380853_28039"><tr class="link-enhancr-element"><td class="link-enhancr-element" colspan="7" style="height: 1px; background-color: #e5e5e5; font-size: 1px; border-collapse: collapse;"><div class="link-enhancr-element" style="height: 1px; background-color: #e5e5e5; font-size: 1px; line-height:0px;">&nbsp;</div></td></tr><tr class="link-enhancr-element" id="yui_3_16_0_1_1436469380853_28060"><td rowspan="5" class="link-enhancr-element" style="width: 1px; background-color: #e5e5e5; font-size: 1pt; border-collapse: collapse;"><div class="link-enhancr-element" style="width: 1px; background-color: #e5e5e5; font-size: 1pt;">&nbsp;</div></td><td rowspan="5" class="link-enhancr-element" style="width: 14px; background-color: #ffffff; font-size: 0pt; border-collapse: collapse;" id="yui_3_16_0_1_1436469380853_28059"><div class="link-enhancr-element" style="width: 14px; background-color: #ffffff; font-size: 14pt;">&nbsp;</div></td><td colspan="2" class="link-enhancr-element" style="height: 6px; background-color: #ffffff; font-size: 0pt; border-collapse: collapse;"><div class="link-enhancr-element" style="height: 6px; background-color: #ffffff; font-size: 6pt;">&nbsp;</div></td><td rowspan="5" class="link-enhancr-element" style="width: 20px; background-color: #ffffff; font-size: 0pt; border-collapse: collapse;"><div class="link-enhancr-element" style="width: 20px; background-color: #ffffff; font-size: 20pt;">&nbsp;</div></td><td class="link-enhancr-element" rowspan="5" width="1" style="width: 1px; background-color: #e5e5e5; font-size: 1pt; border-collapse: collapse;"><div class="link-enhancr-element" style="width: 1px; background-color: #e5e5e5; font-size: 1pt;">&nbsp;</div></td></tr><tr id="yui_3_16_0_1_1436469380853_28038"><td class="link-enhancr-element" colspan="2" style="width: 100%; vertical-align: middle; font-family: 'Georgia', 'Times', 'Times New Roman', 'serif';" id="yui_3_16_0_1_1436469380853_28037"><div class="link-enhancr-text-part link-enhancr-element" style="line-height:16.5px; background-color: #ffffff;  width: 414px;" id="yui_3_16_0_1_1436469380853_28036"><div class="link-enhancr-element" style="word-wrap: break-word; word-break: break-all;" id="yui_3_16_0_1_1436469380853_28035"><span class="link-enhancr-element icon  icon-shrink link-enhancr-toggle"></span><span class="link-enhancr-element icon icon-close link-enhancr-delete"></span><a href="https://metacpan.org/diff/file?target=JJNAPIORK/Catalyst-Plugin-Session-0.40/&amp;source=JJNAPIORK/Catalyst-Plugin-Session-0.39/" class="link-enhancr-card-urlWrapper link-enhancr-element" style="text-decoration: none !important; color: #000000 !important; line-height: 100%; font-size: 18px; display: block;" id="yui_3_16_0_1_1436469380853_28034"><span class="link-enhancr-element link-enhancr-card-title" style="margin: 0; font-weight: normal;margin-bottom: 3px; font-size: 18px; line-height: 21px; max-height: 43px; color: #000000; overflow: hidden !important; display: inline-block;" id="yui_3_16_0_1_1436469380853_28058">Search the CPAN - metacpan.org</span></a><div style="font-size: 13px; line-height: 20px; color: #999999; max-height: 81px; font-family: 'Georgia', 'Times', 'Times New Roman', 'serif';overflow: hidden;" class="link-enhancr-card-description link-enhancr-element" id="yui_3_16_0_1_1436469380853_28041">Changes05 META.yml88 inc/Module/Install/Base.pm11 inc/Module/Install/Can.pm11 inc/Module/Install/Fetch.pm11 inc/Module/Install/Makefile.pm22 inc/Module/Install/Metadata.pm33 </div></div></div></td></tr><tr id="yui_3_16_0_1_1436469380853_28044"><td colspan="2" class="link-enhancr-element" style="height: 6px; background-color: #ffffff; font-size: 0pt; border-collapse: collapse;" id="yui_3_16_0_1_1436469380853_28043"><div class="link-enhancr-element" style="height: 6px; background-color: #ffffff; font-size: 6pt;" id="yui_3_16_0_1_1436469380853_28042"></div></td></tr><tr id="yui_3_16_0_1_1436469380853_28047"><td class="link-enhancr-element" style="vertical-align: middle; font-family: 'Arial', 'Helvetica Neue', 'Helvetica', 'sans-serif';" id="yui_3_16_0_1_1436469380853_28046"><div class="link-enhancr-element" style="font-size: 0pt;" id="yui_3_16_0_1_1436469380853_28045"><a href="https://metacpan.org/diff/file?target=JJNAPIORK/Catalyst-Plugin-Session-0.40/&amp;source=JJNAPIORK/Catalyst-Plugin-Session-0.39/" class="link-enhancr-card-url link-enhancr-element" style="color: black; text-decoration: none !important;cursor:pointer !important;" target="_blank" id="yui_3_16_0_1_1436469380853_28057"><span class="link-enhancr-element link-enhancr-view-on" style="display: inline-block; line-height: 11px; max-width: 314px; min-width: 254px; overflow: hidden; max-height: 13px; word-break: break-all;" id="yui_3_16_0_1_1436469380853_27589"><span class="link-enhancr-element link-enhancr-mobile-no-resize" style="vertical-align:middle; font-size: 9px; line-height: 11px; color: #999999; -moz-text-size-adjust: none; -ms-text-size-adjust: none; -webkit-text-size-adjust:none; text-size-adjust:none;" id="yui_3_16_0_1_1436469380853_28056">View on <span style="font-weight: bold" class="link-enhancr-view-on-domain" id="yui_3_16_0_1_1436469380853_28055">metacpan.org</span></span></span></a></div></td><td class="link-enhancr-element" style="vertical-align: middle; width: 100px; font-family: 'Arial', 'Helvetica Neue', 'Helvetica', 'sans-serif';"><div class="link-enhancr-element link-enhancr-preview-wrapper" style="max-width: 100px; min-width: 80px; overflow: hidden; text-align: right; line-height: 11px; max-height: 13px; font-size: 0pt;"><span class="link-enhancr-element link-enhancr-preview-by link-enhancr-mobile-no-resize" style="vertical-align:middle; font-size: 9px; line-height: 11px; color: #999999; -moz-text-size-adjust: none; -ms-text-size-adjust: none; -webkit-text-size-adjust:none; text-size-adjust:none;">Preview by Yahoo</span></div></td></tr><tr id="yui_3_16_0_1_1436469380853_28050"><td colspan="2" class="link-enhancr-element" style="height: 9px; background-color: #ffffff; font-size: 0pt; border-collapse: collapse;" id="yui_3_16_0_1_1436469380853_28049"><div class="link-enhancr-element" style="height: 9px; background-color: #ffffff; font-size: 9pt;" id="yui_3_16_0_1_1436469380853_28048"></div></td></tr><tr class="link-enhancr-element"><td class="link-enhancr-element" colspan="7" style="height: 1px; background-color: #e5e5e5; font-size: 1px; border-collapse: collapse;"><div class="link-enhancr-element" style="height: 1px; background-color: #e5e5e5; font-size: 1px; line-height:0px">&nbsp;</div></td></tr></tbody></table></div><div id="yui_3_16_0_1_1436469380853_27112"><br></div>  Might just need a simple change on the catalyst adaptor. &nbsp;<br><div class="qtdSeparateBR" id="yui_3_16_0_1_1436469380853_28306"><br><br></div><div class="yahoo_quoted" id="yui_3_16_0_1_1436469380853_28994" style="display: block;"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" id="yui_3_16_0_1_1436469380853_28993"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" id="yui_3_16_0_1_1436469380853_28992"> <div dir="ltr" id="yui_3_16_0_1_1436469380853_28991"> <font size="2" face="Arial"> On Thursday, July 9, 2015 2:29 PM, John Napiorkowski &lt;jjn1056@yahoo.com&gt; wrote:<br> </font> </div>  <br><br> <div class="y_msg_container" id="yui_3_16_0_1_1436469380853_28997"><div id="yiv3086723255"><div id="yui_3_16_0_1_1436469380853_28996"><div style="color:#000;background-color:#fff;font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;" id="yui_3_16_0_1_1436469380853_28995"><div dir="ltr" id="yiv3086723255yui_3_16_0_1_1436469380853_10752"><span id="yiv3086723255yui_3_16_0_1_1436469380853_12333">I would think that this could be used by Plack middleware and Catalyst as core session functionality. &nbsp;So I don't think in the end its either or.</span></div><div dir="ltr" id="yiv3086723255yui_3_16_0_1_1436469380853_10752"><span><br clear="none"></span></div><div dir="ltr" id="yiv3086723255yui_3_16_0_1_1436469380853_10752"><span id="yiv3086723255yui_3_16_0_1_1436469380853_12334">Aran, the main thing I can't figure is how to have a cookie storage... since&nbsp;that's gotta be aware of the request/response cycle. &nbsp;I'd adopt this in a moment for new code if we could figure that part out. &nbsp;Personally I just put a few tiny IDs in the session so cookie storage is more than enough, and nice for quick prototypes.</span></div><div dir="ltr" id="yiv3086723255yui_3_16_0_1_1436469380853_10752"><span><br clear="none"></span></div><div dir="ltr" id="yiv3086723255yui_3_16_0_1_1436469380853_10752"><span id="yiv3086723255yui_3_16_0_1_1436469380853_13899">Any thoughts? &nbsp;You can hit me out on IRC #catalyst if that is either - jnap</span></div>  <br clear="none"><div class="yiv3086723255qtdSeparateBR" id="yiv3086723255yui_3_16_0_1_1436469380853_10794"><br clear="none"><br clear="none"></div><div class="yiv3086723255yahoo_quoted" id="yiv3086723255yui_3_16_0_1_1436469380853_10792" style="display: block;"> <div id="yiv3086723255yui_3_16_0_1_1436469380853_10791" style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"> <div id="yiv3086723255yui_3_16_0_1_1436469380853_10790" style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"> <div class="yiv3086723255yqt1033843775" id="yiv3086723255yqt58519"><div dir="ltr" id="yiv3086723255yui_3_16_0_1_1436469380853_10793"> <font id="yiv3086723255yui_3_16_0_1_1436469380853_12335" size="2" face="Arial"> On Thursday, July 9, 2015 10:35 AM, Aran Deltac &lt;bluefeet@gmail.com&gt; wrote:<br clear="none"> </font> </div>  <br clear="none"><br clear="none"> <div class="yiv3086723255y_msg_container" id="yiv3086723255yui_3_16_0_1_1436469380853_10789"><div id="yiv3086723255"><div id="yiv3086723255yui_3_16_0_1_1436469380853_10788"><div dir="ltr" id="yiv3086723255yui_3_16_0_1_1436469380853_10787">Ya, I have Plack::Middleware::Session listed in the alternatives section of the manual.&nbsp; Thanks for the reply!<br clear="none"></div><br clear="none"><div class="yiv3086723255gmail_quote" id="yiv3086723255yui_3_16_0_1_1436469380853_11115"><div class="yiv3086723255yqt3586630024" id="yiv3086723255yqtfd16866"><div dir="ltr" id="yiv3086723255yui_3_16_0_1_1436469380853_13900">On Thu, Jul 9, 2015 at 7:14 AM Hartmaier Alexander &lt;<a rel="nofollow" shape="rect" ymailto="mailto:alexander.hartmaier@t-systems.at" target="_blank" href="mailto:alexander.hartmaier@t-systems.at">alexander.hartmaier@t-systems.at</a>&gt; wrote:<br clear="none"></div><blockquote class="yiv3086723255gmail_quote" id="yiv3086723255yui_3_16_0_1_1436469380853_11114" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">



<div id="yiv3086723255yui_3_16_0_1_1436469380853_13902">
Hi Aran,<br clear="none">
did you look at <span id="yiv3086723255yui_3_16_0_1_1436469380853_13901">Plack::Session if you want something decoupled from Catalyst?<br clear="none">
I haven't used it so far as I don't require sessions that are shared with non-Catalyst stuff but it might be a better base for a futureproof session module.<br clear="none">
</span></div><div id="yiv3086723255yui_3_16_0_1_1436469380853_13903"><br clear="none">
<div>On 2015-07-09 02:17, Aran Deltac wrote:<br clear="none">
</div>
</div><div id="yiv3086723255yui_3_16_0_1_1436469380853_11113"><blockquote id="yiv3086723255yui_3_16_0_1_1436469380853_11112" type="cite">
<div dir="ltr" id="yiv3086723255yui_3_16_0_1_1436469380853_11111">Hey guys,
<div><br clear="none">
</div>
<div id="yiv3086723255yui_3_16_0_1_1436469380853_13904">I've been working on a project which is a (mostly) drop in replacement for Catalyst::Plugin::Session.&nbsp; Here are the GitHub repos:</div>
<div id="yiv3086723255yui_3_16_0_1_1436469380853_13905"><br clear="none">
</div>
<div id="yiv3086723255yui_3_16_0_1_1436469380853_11110">
<div id="yiv3086723255yui_3_16_0_1_1436469380853_11891"><a rel="nofollow" shape="rect" id="yiv3086723255yui_3_16_0_1_1436469380853_11890" target="_blank" href="https://github.com/bluefeet/Web-Starch">https://github.com/bluefeet/Web-Starch</a></div>
<div id="yiv3086723255yui_3_16_0_1_1436469380853_11502"><a rel="nofollow" shape="rect" id="yiv3086723255yui_3_16_0_1_1436469380853_11501" target="_blank" href="https://github.com/bluefeet/Web-Starch-Store-CHI">https://github.com/bluefeet/Web-Starch-Store-CHI</a></div>
<div id="yiv3086723255yui_3_16_0_1_1436469380853_11117"><a rel="nofollow" shape="rect" id="yiv3086723255yui_3_16_0_1_1436469380853_11116" target="_blank" href="https://github.com/bluefeet/Web-Starch-Store-AmazonDynamoDB">https://github.com/bluefeet/Web-Starch-Store-AmazonDynamoDB</a></div>
<div><a rel="nofollow" shape="rect" target="_blank" href="https://github.com/bluefeet/Web-Starch-Plugin-Sereal">https://github.com/bluefeet/Web-Starch-Plugin-Sereal</a></div>
<div id="yiv3086723255yui_3_16_0_1_1436469380853_11109"><a rel="nofollow" shape="rect" id="yiv3086723255yui_3_16_0_1_1436469380853_11108" target="_blank" href="https://github.com/bluefeet/Catalyst-Plugin-Starch">https://github.com/bluefeet/Catalyst-Plugin-Starch</a></div>
</div>
<div><br clear="none">
</div>
<div>The manual is a good place to start:</div>
<div><br clear="none">
</div>
<div><a rel="nofollow" shape="rect" target="_blank" href="https://github.com/bluefeet/Web-Starch/blob/master/lib/Web/Starch/Manual.pod">https://github.com/bluefeet/Web-Starch/blob/master/lib/Web/Starch/Manual.pod</a><br clear="none">
</div>
<div><br clear="none">
</div>
<div>I'm using this @work and will be deploying it to production, replacing Catalyst::Plugin::Session, sometime next week if all goes well this week.</div>
<div><br clear="none">
</div>
<div>I've not put these modules on CPAN yet as I'd love some feedback before I do so.&nbsp; I want to make sure the module names, the interfaces, and just the entire design are acceptable to people.&nbsp; I want this to be a real step forward.</div>
<div><br clear="none">
</div>
<div>@work we've made extensive use of Catalyst::Plugin::Sesssion for years now, and related modules such as Catalyst::Plugin::Authentication.&nbsp; So far everything has "just worked" when I replaced Catalyst::Plugin::Session with Catalyst::Plugin::Starch.</div>
<div><br clear="none">
</div>
<div>Why do this?</div>
<div>
<ul><li>Catalyst::Plugin::Session (C:P:S) is slower in NYTProf reports than I would expect it to be.
</li><li>C:P:S is tied into Catalyst.&nbsp; This is unnecessary.&nbsp; Catalyst should be used to glue things together, not as a platform to build whole technologies on.&nbsp; By decoupling sessions from Catalyst many wins can be had in reusability and unit testing (etc?).
</li><li>C:P:S can be difficult and messy to extend.&nbsp; This is partly due to how Catalyst plugins work, but also due to the design of C:P:S.
</li></ul>
</div>
<div>Aran<br clear="none">
</div>
</div>
<br clear="none">
<fieldset></fieldset> <br clear="none">
</blockquote></div><div><blockquote type="cite"><pre>_______________________________________________
List: <a rel="nofollow" shape="rect" ymailto="mailto:Catalyst@lists.scsys.co.uk" target="_blank" href="mailto:Catalyst@lists.scsys.co.uk">Catalyst@lists.scsys.co.uk</a>
Listinfo: <a rel="nofollow" shape="rect" target="_blank" href="http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst">http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst</a>
Searchable archive: <a rel="nofollow" shape="rect" target="_blank" href="http://www.mail-archive.com/catalyst@lists.scsys.co.uk/">http://www.mail-archive.com/catalyst@lists.scsys.co.uk/</a>
Dev site: <a rel="nofollow" shape="rect" target="_blank" href="http://dev.catalyst.perl.org/">http://dev.catalyst.perl.org/</a>
</pre>
</blockquote>
<br clear="none">
<br clear="none">
<font face="Verdana" color="Purple" size="2"><br clear="none">
*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*<br clear="none">
T-Systems Austria GesmbH Rennweg 97-99, 1030 Wien<br clear="none">
Handelsgericht Wien, FN 79340b<br clear="none">
*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*<br clear="none">
Notice: This e-mail contains information that is confidential and may be privileged.<br clear="none">
If you are not the intended recipient, please notify the sender and then<br clear="none">
delete this e-mail immediately.<br clear="none">
*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*<br clear="none">
</font>
</div>

_______________________________________________<br clear="none">
List: <a rel="nofollow" shape="rect" ymailto="mailto:Catalyst@lists.scsys.co.uk" target="_blank" href="mailto:Catalyst@lists.scsys.co.uk">Catalyst@lists.scsys.co.uk</a><br clear="none">
Listinfo: <a rel="nofollow" shape="rect" target="_blank" href="http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst">http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst</a><br clear="none">
Searchable archive: <a rel="nofollow" shape="rect" target="_blank" href="http://www.mail-archive.com/catalyst@lists.scsys.co.uk/">http://www.mail-archive.com/catalyst@lists.scsys.co.uk/</a><br clear="none">
Dev site: <a rel="nofollow" shape="rect" target="_blank" href="http://dev.catalyst.perl.org/">http://dev.catalyst.perl.org/</a><br clear="none">
</blockquote></div></div></div></div><br clear="none"><div class="yiv3086723255yqt3586630024" id="yiv3086723255yqtfd89234">_______________________________________________<br clear="none">List: <a rel="nofollow" shape="rect" ymailto="mailto:Catalyst@lists.scsys.co.uk" target="_blank" href="mailto:Catalyst@lists.scsys.co.uk">Catalyst@lists.scsys.co.uk</a><br clear="none">Listinfo: <a rel="nofollow" shape="rect" target="_blank" href="http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst">http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst</a><br clear="none">Searchable archive: <a rel="nofollow" shape="rect" target="_blank" href="http://www.mail-archive.com/catalyst@lists.scsys.co.uk/">http://www.mail-archive.com/catalyst@lists.scsys.co.uk/</a><br clear="none">Dev site: <a rel="nofollow" shape="rect" target="_blank" href="http://dev.catalyst.perl.org/">http://dev.catalyst.perl.org/</a><br clear="none"></div><br clear="none"><br clear="none"></div></div>  </div> </div>  </div></div></div></div><br><br></div>  </div> </div>  </div></div></body></html>