Re: transient object data

2001-12-23 Thread Jean-Michel Hiver

 By attribute do you mean an element of the data structure that is blessed
 in the object? Or do you mean some sort of new attribute you would assign
a
 new Serializable data type (ala something to suggest for Perl 6).

I think that what Brian was trying to say is that you could mark an object
attribute as being transient and Data::Dumper would ignore it.

Maybe the way to do it would be to have a Serializable class that could have
the following methods:

freeze($self) : SCALAR
thaw ($class) : OBJECT
clone($self) : OBJECT;
_freeze($self): SCALAR
_remove_transient_attributes($self);

The transient attributes names could be stored in @TRANSIENT.
Maybe we could also have a more generic $TRANSIENT coderef as well.

Whenever you want to serialize an object calling freeze, then the object is
cloned and the clone gets its transient attributes removed. That we can call
_freeze on the modified copy.

With this interface it would be possible to subclass Serializable with
Serializable::FreezeThaw, Serializable::DataDenter or
Serializable::XMLDumper for instance (just override the _freeze and thaw
methods). The objects can also redefine the clone() method if they need to.

Now there's only one drawback that I can see - It needs to be written :-)
Cheers,

--
Jean-Michel Hiver.




Re: Cache::Cache locking

2001-12-23 Thread Tatsuhiko Miyagawa

On Sun, 23 Dec 2001 04:23:47 +0900
Tatsuhiko Miyagawa [EMAIL PROTECTED] wrote:

  Apache::Singleton::Server got me thinking about Cache::Cache
  and locking again. if i'm going to have a server-global
  object, i am going to need to protect against multiple
  processes updating it simultaneously, right?
 
 Right. Which makes me remember current Apache::Singleton::Server is
 complete broken :( it doesn't update changed attribute to shared data
 in IPC ... would fix.

Apache::Singleton 0.04 is now going to CPAN, without Server
subclass, which was broken, and in fact I don't need for my
production environment ;)

If you want Server implementation (with sufficient speed and
robust locking), I'm always open to patches!


0.04  Sun Dec 23 21:20:04 JST 2001
- Fixed docs
- pulled off Server subclass: it was completely broken

The URL

http://bulknews.net/lib/archives/Apache-Singleton-0.04.tar.gz

has entered CPAN as

  file: $CPAN/authors/id/M/MI/MIYAGAWA/Apache-Singleton-0.04.tar.gz
  size: 2675 bytes
   md5: 3865399d4d8a9b970fd71e2f048de8e3

 
--
Tatsuhiko





[DIGEST] mod_perl digest 2001/12/22

2001-12-23 Thread James G Smith

--

  mod_perl digest
 
December 16, 2001 - December 22, 2001

--

Recent happenings in the mod_perl world...


Features

  o mod_perl status
  o module announcements
  o job announcements
  o available mod_perlers
  o mailing list highlights
  o links


mod_perl status

  o mod_perl
- stable: 1.26 (released July 11, 2001) [1]
- development: 1.26_01-dev [2]
  o Apache
- stable: 1.3.22 (released October 9, 2001) [3]
- development: 1.3.21-dev [4]
  o Apache 2.0
- beta: 2.0.28 (released November 13, 2001) [5]
  o Perl
- stable: 5.6.1 (released April 9, 2001) [6]
- development: 5.7.2 [7]

module announcements

  o Module::Require 0.02 - provides glob and regular expression
capabilities for `require'ing Perl modules (0.03 has since been
released) [8]

  o Log::Dispatch::Config 0.06 - provides configuration support for
Log::Dispatch [9]

  o Apache:Singleton 0.04 - a mod_perl-aware version of
Class::Singleton [10]

job announcements

  o Webmaster with light programming in Chicago [11]

available mod_perlers

  o GNU software and infrastructure engineer in Northern California
(Bay area) [12]

mailing list highlights

  o Report on mod_accel and mod_deflate, where two C modules are
discussed [13]

  o mod_perl site redesign -- we have a winner! [14]

  o What phase am I in? or Where's the documentation?  Conclusion:
join the mod_perl 2.0 documentation list and help make this a
better world [15]

links

  o The Apache/Perl Integration Project [16]
  o mod_perl documentation [17]
  o mod_perl modules on CPAN [18]
  o mod_perl homepage [19]
  o mod_perl news and advocacy [20]
  o mod_perl list archives
  - modperl@ [21] [22] 
  - dev@ [23] [24]
  - advocacy@ [25]


happy mod_perling...

--James
[EMAIL PROTECTED]

--
[1] http://perl.apache.org/dist/
[2] http://perl.apache.org/from-cvs/modperl/
[3] http://www.apache.org/dist/httpd/
[4] http://dev.apache.org/from-cvs/apache-1.3/
[5] http://www.apache.org/dist/httpd/
[6] http://www.cpan.org/src/stable.tar.gz
[7] http://www.cpan.org/src/devel.tar.gz 
[8] http://mathforum.org/epigone/modperl/phumclinhou
[9] http://mathforum.org/epigone/modperl/snobrozor
[10] 
[EMAIL PROTECTED]">http://mathforum.org/epigone/modperl/querddingkul/[EMAIL PROTECTED]
[11] http://mathforum.org/epigone/modperl/smonangqueld
[12] http://mathforum.org/epigone/modperl/snolkimsnar
[13] http://mathforum.org/epigone/modperl/whimpkhoodah
[14] http://mathforum.org/epigone/modperl/jandpleedwoi
[15] http://mathforum.org/epigone/modperl/zaxterdrol
[16] http://perl.apache.org
[17] http://perl.apache.org/#docs
[18] http://www.cpan.org/modules/by-module/Apache/
[19] http://www.modperl.com
[20] http://www.take23.org
[21] http://mathforum.org/epigone/modperl/
[22] http://marc.theaimsgroup.com/?l=apache-modperlr=1w=2
[23] http://marc.theaimsgroup.com/?l=apache-modperl-devr=1w=2
[24] http://www.mail-archive.com/dev%40perl.apache.org/
[25] http://www.mail-archive.com/advocacy@perl.apache.org/



Re: [modperl site design challenge] and the winner is...

2001-12-23 Thread Philip Mak

I took a look at the winning design at
http://domm.zsi.at/modperl-site-domm/ and I see a significant problem for
people in 800x600 resolution (which is pretty common still, and I use it):

A horizontal scrollbar appears at the bottom of the screen.

Can't this be fixed? Also, the left sidebar seems to be wider than it
needs to be. The logo is 150 pixels, so I think it only has to be that
wide.

I have attached a screenshot from 800x600 resolution in Opera 6. (The same
thing happens in Internet Explorer 5.5.)

I took a look at the style sheet
(http://domm.zsi.at/modperl-site-domm/style.css) and changed a few numbers
such that the left sidebar takes up less space, and made it so that the
page is allowed to compress smaller such that it'll even fit in 640x480
(about 10% of internet users have that resolution last I checked, although
this proportion may be smaller for programmers).

I attached the changed style sheet; I think it's better this way. You can
see how it looks online at http://sg1.indexthis.net/~pmak/modperl.html.
Under smaller resolutions the horizontal scrollbar is gone, but it'll look
pretty much the same on 1024x768.

BTW, kudos to the designer on making that page without using TABLE tags
(which prevent incremental rendering)! I've tried to figure out how to do
that myself before but didn't manage to do so for pages this complicated.
(If the person viewing the page doesn't have stylesheet support though,
the sidebar will show up at the bottom of the page... Do we have any
statistics on what percentage of people viewing the mod_perl website have
user agents that don't do stylesheets, or Netscape with JavaScript off?)



modperl.gif
Description: Screenshot from 800x600

body {	font-family: helvetica, verdana, sans-serif; 
	font-size:small;
	color: #00; 
	background-color: #ff;

 }	


h1 { 
	padding:2px;
	background-color: #828DA6;
	color:#ff;
}  

a:link { color:#ff;	font-family: helvetica, verdana, sans-serif;}
a:visited {color:#ff;	font-family: helvetica, verdana, sans-serif; }
a:active {color:#ff;	font-family: helvetica, verdana, sans-serif; }
a:hover {color:#ff;	font-family: helvetica, verdana, sans-serif;}

pre { 
 	font-family: courier new, courier, monospace;
  	color: #00;
}

code { 
 	font-family: courier new, courier, monospace;
}

div.navbar a {text-decoration: none; color:#ff;}
div.activenav a {text-decoration: none; color:#ff;}
div.navbarglobal a {text-decoration: none; color:#ff;}
div.notactivenav a {text-decoration: none;	color:#525D76;}
div.toc a {text-decoration: none;color:#ff;}

div.leftcont {
	position:absolute;
	top:5px;
	left:5px;
	width:160px;
}

div.content {
	position:absolute;
	top:5px;
	left:175px;
	margin-right:10px;
	padding:5px;
	border:1px;
	border-style:solid;
	border-color:#525D76;
	background-color: #ff;

}

div.logo {
	padding:5px;
	border:1px;
	border-style:solid;
	border-color:#525D76;
	background-color: #ff;
	text-align:center;
}


div.navbar {
	padding:2px;
	border:0px;
	border-style:solid;
	border-color:#525D76;
	background-color: #ff;
}

div.activenav {
	font-weight:bold;
	padding:2px;
	background-color: #525D76;
}

div.notactivenav {
	padding:2px;
	font-weight:bold;
	border:1px;
	border-style:solid;
	border-color:#525D76;
	margin-top:-1px;

}

div.navbarglobal {
	padding:2px;
	background-color: #525D76;
	color:#ff;
}

div.navbarlocal {
	padding:2px;
	text-align:center;
}

div.tail {
	padding-top:10px;
	padding:5px;
	border:1px;
	border-style:solid;
	border-color:#525D76;
	background-color: #ff;
}


div.ad {
	border:1px;
	padding:5px;
	border-style:solid;
	border-color:#525D76;
	background-color: #ff;
}