Re: production mail server in Perl, was Re: asynchronous execution

2003-03-19 Thread Matt Sergeant
On Wednesday, Mar 19, 2003, at 14:27 Europe/London, Ask Bjoern Hansen 
wrote:

[EMAIL PROTECTED] (Bas A . Schulte) writes:

[...]
Would be great to have a good generic server framework upon which
other types of servers could be built.
(slightly old thread)

I keep meaning to make qpsmtpd run under mod_perl 2, but I haven't had
the tuits for it yet.
What would be the benefits?

Matt.



Re: Concept for an Apache/mod_perl Perl Application Server

2002-11-26 Thread Matt Sergeant
On Tuesday, Nov 26, 2002, at 16:45 Europe/London, Stephen Adkins wrote:


Others tend to concur.

   Bas Schulte
   http://archive.develooper.com/p5ee%40perl.org/msg01195.html
   Matt Sergeant
   http://archive.develooper.com/p5ee%40perl.org/msg01191.html


No, I've always thought Apache was a terrible place to put this sort of 
thing. People used to advocate the whole cron thing to me on the 
mod_perl list, and I always wanted for a better solution.

My preference is POE.

Matt.



Re: Concept for an Apache/mod_perl Perl Application Server

2002-11-26 Thread Matt Sergeant
On Tuesday, Nov 26, 2002, at 17:41 Europe/London, Bas A.Schulte wrote:


I did take a look at POE, and still do now and then, but I just don't 
seem to get it's concepts to actually get something done on top of it. 
Recently I tried one of the examples on poe.perl.org 
(http://poe.perl.org/?Poe_cookbook/Web_Server_With_Forking) briefly 
but it wasn't very fast, even for NOOP requests.

POE isn't terribly fast, because it has to do a lot of management on 
top of its server system. Where you gain is in sharing - you don't have 
to jump through hoops to share data (except in a multi-server system).

Matt.



Re: protocol explosion (was asynchronous execution, was Re: implementing a set of queue-processing servers)

2002-11-22 Thread Matt Sergeant
On Friday, Nov 22, 2002, at 02:49 Europe/London, Gunther Birznieks 
wrote:

I disagree. I think it depends on the protocol. A well designed 
protocol for an application will spread and stand the test of time. 
Sometimes the protocol doesn't have to be well designed, but just that 
it's standard can help tremendously.

eg if we were a world that said HTTP is it and we should do 
everything over HTTP, then would you really see SMTP over HTTP? SNMP 
over HTTP? telnet over HTTP? Why?

This doesn't really make sense to me.

[OT, because I know this isn't really your point]

As someone who's entire job revolves around SMTP these days, I'd love 
to see mail go over HTTP. SMTP's got no concept of negotiation. It's 
got little in the way of versioning (HELO vs EHLO). It's got no 
permanent redirect (e.g. [EMAIL PROTECTED] is now 
[EMAIL PROTECTED]). It's got very weak handling of binary 
data. Writing mail server plugins is very non-standardised.

Don't get me wrong, SMTP is a great protocol, but HTTP is sometimes 
just *so* much nicer :-)

Matt.



Re: Aspect-Oriented Programming with Perl 5.8.0

2002-10-31 Thread Matt Sergeant
On Wednesday, Oct 30, 2002, at 04:34 Europe/London, Stephen Adkins 
wrote:

What I really want is the ability to do the following.

  * Turn on tracing, where a program will print out every
function/method entry and exit in indented form to show
the program flow.


Sounds like you want Devel::TraceCalls.

http://search.cpan.org/author/RBS/Devel-TraceCalls-0.03/




Re: OSCON 2002 P5EE BOF

2002-06-11 Thread Matt Sergeant

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On Tuesday 11 June 2002 11:06 pm, Stephen Adkins wrote:

 2. I had figured it would be in a conference room where we had
 some hope of getting a speaker phone in there so I could
 perhaps join in remotely.
 Anyone know how the BOF format works?
 Will it be around a table? at a lectern? or just pulling
 together a circle of chairs?

Depends on the size of the room mostly, but usually in the evening all the AV 
stuff is taken away or turned off, so you're on your own if you want a mic or 
speaker phone or anything like that.

At the CMS BOF two years ago loads of people turned up, so we used the whole 
room in the same layout as when speakers were in earlier, at smaller BOF's 
I've been to we just grabbed chairs and sat around.

- -- 
:-get a SMart net/:-
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.0.7 (GNU/Linux)

iD8DBQE9BnVwVBc71ct6OywRAnNZAJ0ZGJgsCnJqG++6bw5Xzd7MMqMuOACfcoJ3
3ArJ9XvvzFUhnXWptU8FIFU=
=phZN
-END PGP SIGNATURE-



Re: A reminder of why we're here...

2002-06-09 Thread Matt Sergeant

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On Sunday 09 June 2002 7:34 pm, Greg McCarroll wrote:
 * Perrin Harkins ([EMAIL PROTECTED]) wrote:
  However, J2EE is mostly used for server-side web
  development, and that's what I was talking about.  There's no need for
  any distributed object technology there about 99% of the time.

 This is probably as good a place as anywhere for this conversation ...

 I was talking to a TA from Accenture recently about Perl, mod_perl and
 Java and he told me that some java application server (i forgot to ask
 him which) could maintain less JDBC connections than http session
 handling threads and share them between the threads as needed without
 prior knowledge of wheter or not the thread needed to do DB work. Is
 there an equivalent way to do this with mod_perl? To my knowledge,
 which may be wrong, there isn't[1].

Apparently it's possible with Sybase (Michael Peppler has done something 
special to support this under mod_perl, but I don't recall exactly what, and 
I think he has to use the Sybase CtLib or DbLib directly rather than DBI). 
The details are somewhere deep in the mod_perl list around about a year ago.

- -- 
:-get a SMart net/:-
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.0.7 (GNU/Linux)

iD8DBQE9A7AqVBc71ct6OywRAuYKAJoDT1mJ+NoqP2p7ZYsG0/K4+HlGJgCfSByX
K6PlTTRXxT9judg9/1l5mNQ=
=8Jkg
-END PGP SIGNATURE-



P5EEx::Blue critique

2002-05-15 Thread Matt Sergeant

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

OK, I'm just going to go through all the bad stuff I see in Blue, because 
that's what I'm good at. Sorry if that seems harsh.

Overall
===

Overall I would say P5EEx::Blue's biggest problem is that it is entirely 
designed from the perspective of web development, and I think it suffers 
because of that. Generally it's great that this has got off the ground, but 
now a lot more work needs to be done - this isn't even ready to be 0.01 yet - 
if we released this to the world at large the J2EE community would laugh at 
us.

Config
==

 o get_branch should return a new Config object, not a hashref.
 o There is no reload() method.
 o There are no setters.

Context
===

 o Context knows *way* too much about widgets. It shouldn't know anything at 
all about them. Put that stuff in a subclass if you have to.
 o There seems to be a lot of convenience methods in there. I think this is 
confusing right now.
 o There's both debugging and logging. Why separate the two? Why are they even 
in this class?

LogChannel
==

 o There is only a single log level. This is fatal. See Log::Dispatch (and 
Log::Dispatch::Config) for a better design.

Messaging
=

 o I don't know enough about messaging APIs to really comment on this. I get 
the feeling that the API is naive, but it's merely a gut feeling.

Procedure
=

 o Do we need this class? I'm not convinced we do. It seems again like a naive 
design - I'd like to see what j2ee does in this space.

Repository
==

 o This seems to be yet another DBI abstraction layer. It seems quite tied to 
the concept of relational databases (or at least - relational data). What are 
the rules for the $params option? If that's subclass dependant it seems kinda 
pointless.

Security


Seems unstarted, which is a shame as this is one of the nuts-and-bolts parts 
of an enterprise environment.

Serializer (ugh, american spelling ;-)
==

 o We need a facility to serialize directly to a filehandle (even if it's 
implemented as a serialize to string and then writing to a file), and 
directly to callbacks.

Session
===

 o html() method *must* die.
 o This seems like a place where p5ee could be really strong, but it's not. 
Sessions require facilities like timeouts, getters/setters, and a few more 
bits.

SharedDatastore
===

 o A SharedDatastore service represents a single hash in which scalars or 
deep references may be stored. (They are automatically serialized using 
Storable for storage.) - Why are they not serialized using Serializer? Or is 
this a doc bug?
 o How do we define where the shared data is, what the limits are, and what 
timeouts exist?

SharedResourceSet
=

 o Looks good. No complaints ;-)

TemplateEngine
==

 o I'm not sure I like this, or even think it should be in p5ee. Templating 
often works extremely differently depending on the environment you're in, and 
the templating system in use. One of the biggest plusses for XSLT (for 
example) is that the result of an XSLT transformation is a new XML DOM tree, 
not a string, as you have it in your API. I'd say leave this out of p5ee.

Widgets
===

Ah, the widgets...

I have a feeling that this is where you spent most of the development effort. 
I've spent a lot of time studying and trying different techniques of doing 
cross-environment widgets, and it just plain don't work. Right now all you 
have is Widget::HTML::*. When you get to trying to do Widget::Gtk, or 
supporting some of the Gtk features in HTML, and trying to be a transparent 
layer between Gtk and Tk, you'll see it just doesn't and can't work. These 
different layers are so fundamentally different that no layer over the top of 
them can just make them work.

While I think the Widgets stuff is an excellent separate project, I think it 
has no place in p5ee, unless everyone thinks that p5ee should be focussing on 
web development?

Docs


The docs are nice (albeit lacking detail). Good work on those.

Conclusions
===

I hope I haven't been too harsh. All in all I'm +1 to make P5EEx::Blue the 
start of P5EE (bet you weren't expecting that!). The reason being that we 
need to start somewhere, and Stephen obviously has a lot of energy for this 
project where the rest of us don't. But I think it's going to need major 
surgery, and a serious effort from more than just Stephen (and no, that's not 
me volunteering ;-)

- -- 
:-get a SMart net/:-
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.0.7 (GNU/Linux)

iD8DBQE84hg0VBc71ct6OywRAqg2AKDQjzoJD/oL5IaJZL4zeICS+2yypQCgiS6P
zckeIhTFnCylAzYR4eXaOcs=
=M0mf
-END PGP SIGNATURE-



Re: Preparations for a Vote

2002-05-14 Thread Matt Sergeant

On Tuesday 14 May 2002 11:35 pm, Stephen Adkins wrote:
 At 12:27 PM 5/11/2002 -0400, Stephen Adkins wrote:
 Hi,

 

 In preparation for a vote, I am requesting input from
 *everyone* on this list who engages in web application
 development or anything approximating enterprise
 development.

 I am being deafened by silence.

 So here is an additional qualification for voting:
 You must respond to my message (your answers may be brief)
 and/or participate in this discussion in order to qualify
 to vote later (I reserve the right make exceptions, but
 they will need to be for good reasons).

 I have actually gotten three off-list responses.
 Please respond via the list rather than privately.

 None of the people who showed great interest at the outset
 of this project have responded.
 (I guess the 6 month delay chased away everyone who
 showed initial interest.)

 We are not deterred. The P5EE bandwagon rolls on.

I had a brief look at the code, but gave up when I saw that there were no 
tests.

Sorry, but that's as far as I got. Then real life took over ;-)

Matt.



Re: Post about a Apache/mod_perl based component/service architecture

2002-03-22 Thread Matt Sergeant

On Fri, 22 Mar 2002, brian moseley wrote:

 On Fri, 22 Mar 2002, Matt Sergeant wrote:

  The problem with lack of timers and in the future
  events made me switch a lot of my server work from
  mod_perl to POE. Despite your fears about cooperative
  multitasking (yes it's a pain, but there are
  work-arounds), it's a very nice platform to develop for,
  IMHO.

 every time i look at poe my head spins and i am reminded
 exactly how much of a novice i really am.

I had this problem too, until I figured out that it's just terminology
that was confusing me. That's why I'm giving a POE tutorial at the perl
conference this year to help clear up some of this confusion. Conceptually
POE is actually really simple, once you get past the documentation ;-)

-- 
!-- Matt --
:-Get a smart net/:-




Re: [Cross-Post] Perl Widget Library = P5EE

2002-03-21 Thread Matt Sergeant

On Thu, 21 Mar 2002, Stephen Adkins wrote:


 P.S. I have begun work on P5EEx::Blue::TemplateEngine::TemplateToolkit.
 If anyone who knows Mason or AxKit would like to help, I would be
 happy for you to work on P5EEx::Blue::TemplateEngine::Mason or
 P5EEx::Blue::TemplateEngine::AxKit.

AxKit is not a template engine.

-- 
!-- Matt --
:-Get a smart net/:-




Re: P5EEx::Blue ready for alpha users

2002-03-19 Thread Matt Sergeant

On Tue, 19 Mar 2002, Richard Dice wrote:

   Have you taken a look at http://www.smartworker.org/ ?
  
   that site has no whitepapers or modues to download.
  
   I checked gozer's author directory:
  
   http://search.cpan.org/search?mode=authorquery=gozer
  
   and saw no web kit there either.

 Hmm.

 I'm not sure what the state of maintenance (or even availability) of the
 SmartWorker kit is these days.  Gozer and Bbeausej have both has much more
 recent contact with it than I have.  (Bb especially)

 There was once an tarball of Smartworker on CPAN, though I forgot who was
 its maintainer (probably either Gozer or Scott Wilson).  But the CPAN
 search I did just now yielded nothing.

It's in the SMARTWORKER author directory if I remember correctly. Hmm, it
seems to have dropped off CPAN. Not unusual when a module isn't updated.

I had a long conversation with Gozer about SW. Basically we discussed ways
you could improve it to use XML (well, duh!), and to be more MVC in
nature. Unfortunately neither of us went anywhere with it, but Gozer said
he intended to do a complete rewrite at some point.

-- 
!-- Matt --
:-Get a smart net/:-




Re: bivio online transaction processing system

2002-02-28 Thread Matt Sergeant

On 28 Feb 2002, Michael A Nachbaur wrote:

  One thing that Pg offers that nobody else does is Perl stored procedures
  I haven't had the opportunity to try them yet, but it sounds very cool
  indeed to be able to write SPs in Perl Has anyone here used those yet?

 I've toyed with them a bit, but for security purposes, the verison of
 perl that is linked in with Pg cannot access external files or system
 calls  As a result, you can't require or use any external
 libraries  Also, another real bummer, is you can't actually invoke any
 SQL queries from within a perl stored procedure  All you can do is
 things like regex's and other stuff on your input arguments

There's a module on CPAN allowing you to do SQL from within PL SP's

-- 
!-- Matt --
:-Get a smart net/:-




Re: stored procs? why?

2002-02-28 Thread Matt Sergeant

On Thu, 28 Feb 2002, brian moseley wrote:

 On Fri, 1 Mar 2002, Matt Sergeant wrote:

  Given that though, it becomes very easy to see that if
  you do have a large transaction (including multiple
  table updates for example), it's often safer to
  encapsulate that into a single stored procedure than it
  is to write some large chunk of Perl that turns off
  AutoCommit, does the work, and then commits Plus it
  ensures people can use other languages to execute the
  same transaction If you want to use SOAP/HTTP to
  emulate a stored procedure to achieve the same effect
  you're welcome to, but beware of the performance

 beware the tremendously inflated development schedules that
 can result from this approach at critical path, we used a
 lot of pl/sql stored procs for validation, integrity checks
 and transactions almost every development schedule for
 adding or modifying features to the service was blown out by
 the stored proc development effort

Compared to hacking perl code - absolutely Plus SP's are almost always
harder to debug Nothing is without tradeoffs - this is why you still need
people who know their stuff working for you ;-)

-- 
!-- Matt --
:-Get a smart net/:-




Re: bivio online transaction processing system

2002-02-27 Thread Matt Sergeant

On Wed, 27 Feb 2002, Ajit Deshpande wrote:

 On Wed, Feb 27, 2002 at 08:27:28AM -0500, Chris Winters wrote:
  On Tue, 2002-02-26 at 22:41, Rob Nagler wrote:
   Depends on what you mean by need.  If you need row-level locking or
   a standby database, it's Oracle or DB2 afaik.
 
  I think this kind of begs the question :-) Do most apps *need* these
  features? It's the same kind of attitude I mentioned above: Oracle is
  the answer to every question. Even if you just have 200 MB and no more
  than 50 max concurrent users doing normal browse/create/update
  operations, and normal backup operations will be just fine. (And IIRC, I
  believe that Sybase ASE, Sybase ASA,  Microsoft SQL Server, and
  PostgreSQL all have row-level locking or versions implementing the same
  concept.)

 MySQL with the new InnoDB type tables has row-level locking with full
 transaction support as well..

More to the point, Oracle doesn't use row level locking, it uses MVCC, the
same as PostgreSQL does. By far a more advanced model, IMHO.

-- 
!-- Matt --
:-Get a smart net/:-




Re: what is the object in DBI OO-database development?

2002-02-27 Thread Matt Sergeant

On Wed, 27 Feb 2002, Dave Rolsky wrote:

 On Wed, 27 Feb 2002, Matt Sergeant wrote:

  Right, so how would I go about writing an application that used Class::DBI
  that absolutely needed outer joins (say, for example, a bulletin board
  type application that supported anonymous postings), and I wanted it to
  work cross platform?

 Just like with DBIx::AnyDBD, you'd have to have one subclass per RDBMS,
 and custom code it for each (well, actually MySQL and Postgres share the
 same syntax for outer joins these days).

 But with Alzabo you wouldn't need to do that!  Of course, it only support
 MySQL and Pg right now ;)

Right, and only on Unix (i.e. not transparent through ODBC/ADO). This is
why I said broken in an earlier email.

-- 
!-- Matt --
:-Get a smart net/:-




Re: what is the object in DBI OO-database development?

2002-02-27 Thread Matt Sergeant

On Wed, 27 Feb 2002, Dave Rolsky wrote:

 You've lost me.  Nothing prevents you from having Class::DBI or Alazbo use
 ODBC or ADO on Windows or any other OS.

No, but most database abstractions treat ODBC naively as a whole, not a
passthrough interface through which you access other databases. Thus
abstractions tend to have generic ODBC classes, rather than doing what
AnyDBD does and figures out the underlying database you're connecting to,
and using the appropriate class for that DB.

 _Right now_, Alzabo only supports MySQL and Pg directly.  If you wanted to
 use Alzabo with ODBC, you'd have to write a certain amount of code to
 enable it do so.  OTOH, If you used DBIx::AnyDBD, which already works with
 ODBC, you'd have to write a lot of SQL (depending on how complex your app
 is) that you wouldn't have to write with Alzabo.

 Either way you'd have to write some code.  With Alzabo, once it existed
 you could reuse it for your next ODBC app.  With DBIx::AnyDBD, you'd have
 to write custom SQL every time.

I'm not suggesting people use AnyDBD to write apps with (I do suggest it
regularly, but that's not what I was discussing here). I was talking
about frameworks. Alzabo (and other DB abstractions) should use
DBIx::AnyDBD for it's internal database abstraction. That's all I'm
suggesting here.

-- 
!-- Matt --
:-Get a smart net/:-




Re: bivio online transaction processing system

2002-02-27 Thread Matt Sergeant

On 28 Feb 2002, Ilya Martynov wrote:

  On Wed, 27 Feb 2002 13:12:22 + (GMT), Matt Sergeant [EMAIL PROTECTED] 
said:

  MySQL with the new InnoDB type tables has row-level locking with full
  transaction support as well..

 MS More to the point, Oracle doesn't use row level locking, it uses MVCC, the
 MS same as PostgreSQL does. By far a more advanced model, IMHO.

 Actually InnoDB like Oracle is not just row-level locking. It is MVCC
 also.

Yeah I just found that out. Very cool. Also note eweek's latest benchmark
showing MySQL to be as fast and scaleable as Oracle 9i (using JDBC
though).

One thing that Pg offers that nobody else does is Perl stored procedures.
I haven't had the opportunity to try them yet, but it sounds very cool
indeed to be able to write SPs in Perl. Has anyone here used those yet?

-- 
!-- Matt --
:-Get a smart net/:-




Re: what is the object in DBI OO-database development?

2002-02-26 Thread Matt Sergeant

On Tue, 26 Feb 2002, Terrence Brannon wrote:

 Perspective 1: The DBIx::AnyDBD approach (a DBI core solution)
 The database is an object. Your perl program contains the methods
 which manipulate the object.

 E.g.:

   my $app_handle = DBIx::AnyDBD-new( ... ) ;

   my @cds =
 $app_handle-load_new_cd_releases_since($cgi-param('date')); #
 SELECT
   $app_handle-store_new_cd(%cd_data);# INSERT

 Perspective 2: The Object-Relational Approach (based on DBI,
 but not core. found in several modules -
 Class::DBI, Tangram, BingoX::Carbon, SPOPS).

 E.g.:

   my $cd_set = CD-new;
   my @cds = $cd_set-since($cgi-param('date')); # SELECT
   my $cd = CD-new(%cd_data); #INSERT
   $cd-save;

What surprises me is that more of the Type2 solutions don't use
DBIx::AnyDBD to provide their database abstraction stuff. AnyDBD provides
some nice facilities for seeing through ODBC connections, yet all the
Type2 solutions roll their own (and inevitably get it slightly wrong, or
make supporting other DB's take months, not days).

Just MHO, of course.

I'd have gone for OR mappers any day for my projects if I thought they
could support enough DBMS's, and worked fast enough. But sometimes you
just have to optimise the SQL for a particular database - that's just the
way it works with RDBMS's.

-- 
!-- Matt --
:-Get a smart net/:-




Re: autogeneration of CHANGES file

2002-02-01 Thread Matt Sergeant

On Fri, 1 Feb 2002, Dave Rolsky wrote:

 On Fri, 1 Feb 2002, Stephen Adkins wrote:

  Unless there is a clear consensus on how to do this, I will
  probably modify my cvshistory script to create the
  CHANGES file. (cvshistory is the script which creates the
  CVS Activity page and is located in the P5EEx/Blue/sbin directory.)
 
 http://www.officevision.com/pub/p5ee/activity.html

 I really hate seeing changelogs that are collections of CVS comments.  You
 end up with lots of stuff like:

  Rewrote algorithm to detect smells

  Tweaked some variable names

  ...

 They tend to be way too low level to be of interest to non-core
 developers, people who just use the stuff.  When I look at a changelog for
 a Perl module, I want to to see what will affect me.  Faster, more
 features, API changes, etc.  And that's it.  Take the time to write a
 changelog by hand based on the CVS changes or something.

I'm totally with you on that (though don't do what I do and *forget* to
update Changes - does anyone have a MY::dist that asks you if you updated
Changes and $VERSION and cvs tag???). If people want CVS changes provide
anon cvs and let them do cvs log.

-- 
!-- Matt --
:-Get a smart net/:-




Re: Class::Base

2002-01-15 Thread Matt Sergeant

On Tue, 15 Jan 2002, brian moseley wrote:

 On Tue, 15 Jan 2002 [EMAIL PROTECTED] wrote:

  Did somebody think about extending Attribute::Type so
  that it supports nested structures (and you could get a
  real type system from that) ?

 i'm pretty sure there was concensus in a previous thread
 that requiring 5.6.1 in order to get attribute support is
 not desired.

It wasn't exactly clearly debated, or voted on.

One thing I didn't mention in that thread, which has just bitten me in the
bum again (in someone else's code) is circular references. Which 5.6.x
solves quite nicely with the WeakRef module (not core, but on CPAN).

-- 
!-- Matt --
:-Get a smart net/:-




Re: Class::Base

2002-01-15 Thread Matt Sergeant

On Tue, 15 Jan 2002, brian moseley wrote:

 On Tue, 15 Jan 2002, Matt Sergeant wrote:

  One thing I didn't mention in that thread, which has
  just bitten me in the bum again (in someone else's code)
  is circular references. Which 5.6.x solves quite nicely
  with the WeakRef module (not core, but on CPAN).

 ok, here's a tangent. in the last 24 hours i've been really
 irritated by the fact that i have to dig up 18 different
 modules (sometimes of dubious quality) to get behavior that
 i really wish was in core. what's happening is that i'm
 building a list of modules that i'm going to wind up
 including in every single module i ever write!
 Attributes::This and Class::That. what a pain! maybe i
 should mimic andy and make Class::Everything.

The end result being p5ee! That's the point - core don't want to
include a whole bunch of modules that will never get updated. But people
want something to point to to say: There's the quality bits. That's why
we're here, right?

-- 
!-- Matt --
:-Get a smart net/:-




Re: Class::Base

2002-01-14 Thread Matt Sergeant

On Mon, 14 Jan 2002, brian moseley wrote:


 Class::Base got uploaded to cpan this week. thoughts?

   http://search.cpan.org/search?mode=modulequery=Class%3A%3ABase

I was surprised by this, being an Andy Wardley module I expected it to be
a lot more all encompassing (if you're listening, Hi Andy!). Whereas in
fact it simply seems to create a new hashref object and call init() if
it's available. That's all it does (unless I'm very much mistaken).

-- 
!-- Matt --
:-Get a smart net/:-




Re: Class::Base

2002-01-14 Thread Matt Sergeant

On Mon, 14 Jan 2002, brian moseley wrote:

 On Mon, 14 Jan 2002, Matt Sergeant wrote:

  I was surprised by this, being an Andy Wardley module I
  expected it to be a lot more all encompassing (if you're
  listening, Hi Andy!). Whereas in fact it simply seems to
  create a new hashref object and call init() if it's
  available. That's all it does (unless I'm very much
  mistaken).

 there's some error handling too:

   my $obj = My::Object-new or die $0: whoops:  . My::Object-error;

 and there's a little bit of useful code for handling either
 hashrefs or hashes of named args in the constructor. that's
 code which is irritating to cut and paste over and over, to
 be sure.

 what else would be useful but general enough? clone(),
 equals(), to_string() come to mind..

(this is based on java.lang.Object, sorry folks)

equals
class
to_string
clone

There's some other more Java-ish stuff, but I think that'll do.

-- 
!-- Matt --
:-Get a smart net/:-




Re: Licensing IP ( was Re: Messaging [and licensing] )

2001-11-26 Thread Matt Sergeant

On Mon, 26 Nov 2001, Gunther Birznieks wrote:

 At 11:10 PM 11/25/2001, Matt Sergeant wrote:
 On Sun, 25 Nov 2001, Gunther Birznieks wrote:
 
   This is identical to an interview I read a few weeks ago with SleepyCat
   (the Berkeley DB folks)... As a company, it's in our best interest to use
   an overly aggressive open source
   license that forces commercial entities to buy a less restrictive one. As
   an open source group though who is building a project precisely intended to
   be used in commercial large scale products, then we want a less restrictive
   license and I would argue against GPL.
 
 Actually in many ways, the GPL might be a good thing for P5EE, and if not,
 then the LGPL. We certainly don't want entities taking the P5EE stuff,
 modifying it, and selling solutions based on modified versions. That would
 defeat the purpose. So the LGPL gives us some power over that.

 Why not?

Because P5EE should be like J2EE that way - all about stability of the
API, making sure you can carry the knowledge to the next job. Or port to
another P5EE framework. If some company modifies it, then it dilutes the
skillpool.

-- 
Matt/

/||** Founder and CTO  **  **   http://axkit.com/ **
   //||**  AxKit.com Ltd   **  ** XML Application Serving **
  // ||** http://axkit.org **  ** XSLT, XPathScript, XSP  **
 // \\| // ** mod_perl news and resources: http://take23.org  **
 \\//
 //\\
//  \\




Re: Name for Perl beans

2001-11-25 Thread Matt Sergeant

On Sun, 25 Nov 2001, Uri Guttman wrote:


 well, in a moment of perspiration, this name came up:

   perl onions.

Smelly, and make you cry.

-- 
Matt/

/||** Founder and CTO  **  **   http://axkit.com/ **
   //||**  AxKit.com Ltd   **  ** XML Application Serving **
  // ||** http://axkit.org **  ** XSLT, XPathScript, XSP  **
 // \\| // ** mod_perl news and resources: http://take23.org  **
 \\//
 //\\
//  \\




Re: a sample of the p5ee docs generated with DocSet

2001-11-23 Thread Matt Sergeant

On Fri, 23 Nov 2001, Stas Bekman wrote:

 It took me a few minutes to setup the docset for p5ee, check out the
 auto-generated HTML:
 http://www.apache.org/~stas/p5ee/dst_html/

It's all very pretty, but it doesn't cover the docs issues we have been
discussing here - method parameters, class interactions, automatic
inter-module links, etc.

Or did I miss something?

-- 
Matt/

/||** Founder and CTO  **  **   http://axkit.com/ **
   //||**  AxKit.com Ltd   **  ** XML Application Serving **
  // ||** http://axkit.org **  ** XSLT, XPathScript, XSP  **
 // \\| // ** mod_perl news and resources: http://take23.org  **
 \\//
 //\\
//  \\




Re: P5EE::Util::DateTime (?!?)

2001-11-16 Thread Matt Sergeant

On Fri, 16 Nov 2001, Gerald Richter wrote:

 
  Time::Piece was once into core, but has been retracted now.
 
 Do you know the reasons why ?

Jarkko didn't want to be responsible for defining the One True Date/Time
Module, since it's such a religeous issue. So despite it being Larry's
design, he backed out.

-- 
Matt/

/||** Founder and CTO  **  **   http://axkit.com/ **
   //||**  AxKit.com Ltd   **  ** XML Application Serving **
  // ||** http://axkit.org **  ** XSLT, XPathScript, XSP  **
 // \\| // ** mod_perl news and resources: http://take23.org  **
 \\//
 //\\
//  \\




Re: P5EE::Util::DateTime (?!?)

2001-11-16 Thread Matt Sergeant

On Fri, 16 Nov 2001, Stephen Adkins wrote:

 Hi,

 It says in the documentation for Class::Date that it was derived
 from Time::Object (from the Time::Piece distribution).

 Does anyone know why?
 Why was Time::Object not simply extended?

We had a fight about the code. His code is horrible, really quite ugly. So
I wouldn't accept his patches. We also fought about what should be in
the project's scope. I wanted Time::Object(Piece) to be simple, and he
wanted it to do all sorts of things like be able to automatically handle
MySQL's date format (?!!).

-- 
Matt/

/||** Founder and CTO  **  **   http://axkit.com/ **
   //||**  AxKit.com Ltd   **  ** XML Application Serving **
  // ||** http://axkit.org **  ** XSLT, XPathScript, XSP  **
 // \\| // ** mod_perl news and resources: http://take23.org  **
 \\//
 //\\
//  \\




Re: P5EE::Util::DateTime (?!?)

2001-11-16 Thread Matt Sergeant

On Thu, 15 Nov 2001, Jonathan Stowe wrote:

 On Thu, 15 Nov 2001, brian moseley wrote:

  On Thu, 15 Nov 2001, Stephen Adkins wrote:
 
   Use the following modules for dates and times
  
  Class::Date
  Date::Parse
  Date::Format
 
  i propose that we make this our official recommendation for
  p5ee software and that we accept proposals for altering the
  recommendation as they occur.
 

 advocate type=devils

 I'm not actually sure this is something that should be set in stone here
 right now.  I'm totally with Greg in his point that this project should be
 focussed on the middle tier space, but I would also like to suggest that
 this implies that we can make no assumptions about the implementation
 platform of the adjoining tiers in the application.  There may be
 compelling reasons for me to implement my UI layer in Java and my data
 storage layer in C++ or Ada, I'm going to be looking at interoperability
 as a key feature in the platform I use to implement the stuff between
 them.  So for instance could any of this stuff pick the bits out of :

 prop:sentAt2000-05-14T03:00:00+08:00/prop:sentAt

This is ISO 8601 format. For Time::Piece it's just $t-datetime(), since
it's such a standard formatting. We talked about making it the default
stringification, but that would have made it incompatible with
localtime().

-- 
Matt/

/||** Founder and CTO  **  **   http://axkit.com/ **
   //||**  AxKit.com Ltd   **  ** XML Application Serving **
  // ||** http://axkit.org **  ** XSLT, XPathScript, XSP  **
 // \\| // ** mod_perl news and resources: http://take23.org  **
 \\//
 //\\
//  \\




Re: P5EE::Util::DateTime (?!?)

2001-11-16 Thread Matt Sergeant

On Thu, 15 Nov 2001, Aaron Johnson wrote:

 +1 on Time::Piece.  I like the more verbose example Gerald gave:

 $date3= $date+{years=1,months=2,days=3};

FWIW, I would never support this directly, because the rhs is a hash, not
an object or a number. But I would support:

$date3 = $date + Time::Seconds-new({years = 1, months = 3, days = 3});

-- 
Matt/

/||** Founder and CTO  **  **   http://axkit.com/ **
   //||**  AxKit.com Ltd   **  ** XML Application Serving **
  // ||** http://axkit.org **  ** XSLT, XPathScript, XSP  **
 // \\| // ** mod_perl news and resources: http://take23.org  **
 \\//
 //\\
//  \\




Re: P5EE::Util::DateTime (?!?)

2001-11-15 Thread Matt Sergeant

On Wed, 14 Nov 2001, Stephen Adkins wrote:

 At 04:51 PM 11/14/2001 +, Matt Sergeant wrote:
 On Wed, 14 Nov 2001, Stephen Adkins wrote:
 
  Hi,
 
   * Is anyone interested in helping sort out Date and Time
 functionality for the P5EE?
 
 No. This is *not* an enterprise API, IMO. Others may feel differently, but
 we're not here to sort out all of CPAN!

 That is a good point which we should keep in mind to keep
 us focused.

 Nonetheless, one might hold (as I do) that it really should be
 part of the language (date/time manipulation) as it is in Java.
 (Hence my suggestion of the P5EE::Lang::* namespace.)

In that case I suggest Time::Piece :-)

-- 
Matt/

/||** Founder and CTO  **  **   http://axkit.com/ **
   //||**  AxKit.com Ltd   **  ** XML Application Serving **
  // ||** http://axkit.org **  ** XSLT, XPathScript, XSP  **
 // \\| // ** mod_perl news and resources: http://take23.org  **
 \\//
 //\\
//  \\




Re: P5EE::Util::DateTime (?!?)

2001-11-15 Thread Matt Sergeant

On Thu, 15 Nov 2001, Stephen Adkins wrote:

 Hi,

 Thanks for everybody's input (I pretty much got slammed on this
 one). ;-)  (see the condensed discussion thread at bottom)

 No matter.
 I gladly table this discussion until (if/when) there is some
 actual code to vote on.

Code speaks louder than words.

 This is what my conclusion is from the discussion.
 Use the following modules for dates and times

Class::Date
Date::Parse
Date::Format

Can anyone explain what these 3 modules gain me over the 1 module
Time::Piece?

-- 
Matt/

/||** Founder and CTO  **  **   http://axkit.com/ **
   //||**  AxKit.com Ltd   **  ** XML Application Serving **
  // ||** http://axkit.org **  ** XSLT, XPathScript, XSP  **
 // \\| // ** mod_perl news and resources: http://take23.org  **
 \\//
 //\\
//  \\




Re: Inline POD vs. External POD

2001-11-10 Thread Matt Sergeant

On Sat, 10 Nov 2001, Stephen Adkins wrote:

 Hi,

 What experiences to people have with using inline POD within
 the Module.pm as opposed to maintaining two files,
 Module.pm (for code) and Module.pod (for documentation)?
 What recommendations would you have for P5EE code?

 I would assume Inline POD is the way to go.
 I am wondering if anyone has experiences counter to this.

This is going to be an area of contention...

I think POD has to go for this project. At least in its default form.

We need something way more structured, that maintains API details to the
extreme, like JavaDOC does, only we want something easier/better than
JavaDOC.

I'd suggest XML for docs, in particular sdocbook (simple docbook), but I
know it gives people hives, so maybe an extended POD format would work
(but it starts to get real ugly when you extend it to this extent).

-- 
Matt/

/||** Founder and CTO  **  **   http://axkit.com/ **
   //||**  AxKit.com Ltd   **  ** XML Application Serving **
  // ||** http://axkit.org **  ** XSLT, XPathScript, XSP  **
 // \\| // ** mod_perl news and resources: http://take23.org  **
 \\//
 //\\
//  \\




Re: some observations, and a proposed project

2001-11-08 Thread Matt Sergeant

On Thu, 8 Nov 2001, Perrin Harkins wrote:

  my only concrete reason for preferring xml, other than that
  it feels right ;), is that you get much better error
  handling right out of the box, especially when you turn on
  validation. that's something that would have to be
  implemented as part of a perl-based config file processor.

 Can't you just do something like a require() wrapped in an eval{}?

 I'm not against an XML config, although I've always been happy with perl
 config files in the past.  (I still want to see the layered config idea that
 was discussed earlier.)  It may be that a CGI implementation would need to
 cache the data with Storable and stat the XML files to see if they've
 changed.

One thing to bear in mind is the size of an XML parser. XML::SAX::PurePerl
is running at about 2500 lines of code at the moment, which could be seen
as pretty heavyweight for a core component. Then again, it could be
considerably smaller than, say, a fully fledged mail API.

We may wish to consider either simple INI files (which is what I'm using
to bootstrap XML::SAX, see the perl-xml list for details), or something
like Ingy's XML-come-Data-Dumper-come-Python config files. I forget what
it's called right now (MinML?).

But having said that, I agree with the validation thing - but there aren't
many validating XML parsers in perl.

-- 
Matt/

/||** Founder and CTO  **  **   http://axkit.com/ **
   //||**  AxKit.com Ltd   **  ** XML Application Serving **
  // ||** http://axkit.org **  ** XSLT, XPathScript, XSP  **
 // \\| // ** mod_perl news and resources: http://take23.org  **
 \\//
 //\\
//  \\




Re: some observations, and a proposed project

2001-11-08 Thread Matt Sergeant

On Thu, 8 Nov 2001, Perrin Harkins wrote:

  And then try finding the errors.

 Perl compile errors generally have nice messages with line numbers, but
 whatever, XML is fine with me for this type of project.  I just think you
 guys are being too hard on a technique that has served generations of Perl
 coders well.  Instant config files are really handy, and I've wished for
 them more than once when working in Java.

java.util.Properties?

-- 
Matt/

/||** Founder and CTO  **  **   http://axkit.com/ **
   //||**  AxKit.com Ltd   **  ** XML Application Serving **
  // ||** http://axkit.org **  ** XSLT, XPathScript, XSP  **
 // \\| // ** mod_perl news and resources: http://take23.org  **
 \\//
 //\\
//  \\




Re: Method (n|g)ames

2001-11-04 Thread Matt Sergeant

On Sun, 4 Nov 2001, Jonathan Stowe wrote:

 On Sun, 4 Nov 2001, Matt Sergeant wrote:
 
  I'm totally against the use of AUTOLOAD. I must admit I thought it was
  cute seeing it used in Damian Conway's book to generate accessors on the
  fly, but really, all it's doing is saving a tiny bit of typing.
 

 Well not everywhere.  For some of the stuff I have been doing it saves
 you from having to remember to change things when you add new columns
 to a database table for instance.

Even so, P5EE is at the infrastructure level, not the application level.
We should use best practices, and I don't think AUTOLOAD fits into best
practices.

Look, we need some sort of voting procedure here, otherwise we're going to
go back and forth with issues like this. What scares me is we have at the
moment a situation similar to the Perl 6 process, whereby anyone can throw
ideas out. But we don't have a Larry, who we (well, most people) trust.
And we don't have an Apache-like meritocracy. So how do we make decisions?

-- 
Matt/

/||** Founder and CTO  **  **   http://axkit.com/ **
   //||**  AxKit.com Ltd   **  ** XML Application Serving **
  // ||** http://axkit.org **  ** XSLT, XPathScript, XSP  **
 // \\| // ** mod_perl news and resources: http://take23.org  **
 \\//
 //\\
//  \\




Re: servlet api conversion

2001-10-31 Thread Matt Sergeant

On Thu, 1 Nov 2001, brian moseley wrote:

 in re character encodings and conversions, my current plan
 is to write an IO::CharHandle class that takes the name of a
 character encoding as an argument and transparently performs
 conversions. the goal is to work with utf8 data only inside
 the boundaries of the container, and convert to native
 encodings when data passes out of the container.

Note that this is covered in Perl 5.7.2+ using the PerlIO layer. For an
example see XML::SAX::PurePerl which parses XML switching encodings on the
fly.

-- 
Matt/

/||** Founder and CTO  **  **   http://axkit.com/ **
   //||**  AxKit.com Ltd   **  ** XML Application Serving **
  // ||** http://axkit.org **  ** XSLT, XPathScript, XSP  **
 // \\| // ** mod_perl news and resources: http://take23.org  **
 \\//
 //\\
//  \\