On Sun, Aug 06, 2006 at 04:18:36PM +0300, Marius Feraru wrote:
> <for Gavin>
>   Gavin, what I'm trying to promote is better practices and constructive
>   criticism. If you get them as "bombastic" and "trolling", you can
>   always  set an ignore filter on my name/address and don't bother.
>   My recommendation for you is to read Merlyn's /boilerplate/ at:
>     http://www.perlmonks.org/index.pl?node_id=205373
> </for Gavin>
>
> I agree my brevity may fail to make some us understand what I meant,
> mostly because of my tendency of avoiding duplication (ergo newer people
> on the list may have missed past discussions). Luckily, there are always
> good fellows around providing more helpful explanations (as Dave did
> with his follow-up).

Marius, I am happy to accept constructive criticism. Can I suggest that you
if you want your comments to be received as such that you listen carefully
to what has been said and tone down comments like:

> >> >> Another interesting trick is to setup an autohandler for the css files
> >>
> >> NO! This is NOT "interesting", it's just like killing a mosquito using a
> >> shotgun. All you'll get is hurting yourself and all the others around.

As it is, you've largely misunderstood what I'm doing here, so most of your
comments are pretty unhelpful.

> As Gavin missed my point completely, I suppose there could be others too
> in the same position, so I'll reiterate (hopefully with less brevity).

<snip>

No Marius, I didn't miss your point. I was showing an alternative technique
for css inclusion in autohandlers, not suggesting the two were equivalent.
If you want inheritance, use methods. I want an optional css file attached 
to a component. For this, attributes are easier and faster. So your
criticism wasn't constructive, it was misleading.

> Back to caching...
> 
> Gavin wrote:
> > The output is static, the input is not.
> 
> So he just confirms my /misunderstood/ observation:
> >> We settled it's not a static file, so using source_file's mtime is
> >> wrong, as you don't use the resultant mtime composed from _all_ the
> >> resources involved in generating the response.

Wrong again. Using source_file's mtime is quite correct _unless_ you have 
external dependencies. My CSS files don't. I'm using Mason just as a fancy 
macro language e.g.

  % if ($topbar_style eq 'experimental') {
  #topbar {
    color: <% $topbar_color3 %>;
    background-color: <% $topbar_bgcolor3 %>;
  }
  % } else {
  # ...
  % }

  <%init>
  my $topbar_color3 = '#fff';
  my $topbar_bgcolor3 = '#fc3';
  my $topbar_style = 'experimental';
  </%init>

which lets me make large changes by tweaking variables rather than making 
multiple changes throughout a css file. In this case the source file mtime 
is exactly what you want.

> Approach:
>  We generate that CSS rules page properly using the values from those
>  user_settings fields.
>  Now we're to set the "Last-Modified" header:
> <%perl>
>   my @mtimes = (
>      $user->settings->last_updated->epoch,
>      ( stat $m->current_comp->source_file )[9],
>      # ... mtime of other data involved in generating the output ...
>   );
>   $r->set_last_modified( max @mtimes );
> </%perl>

The main part of your response I found useful was this:

> >> For setting modification headers, use "set_last_modified", "set_etag"
> >> AND "set_content_length". Also, using the "Vary" header properly will be
> >> very helpful.

Can you give me an example of how one would use the etag, content_length, 
and vary headers in this case?

Cheers,
Gavin



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Mason-users mailing list
Mason-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mason-users

Reply via email to