Re: Is mod_perl the right solution for my GUI dev?

2002-06-26 Thread Les Mikesell

From: Fran Fabrizio [EMAIL PROTECTED]

 You oversimplify.  Cookies do work fine.  What creates, reads, modifies, 
 validates the cookies?  What ties the cookies to useful state 
 information that is stored server-side?  There's a lot of coding 
 potentially involved.  Yes, perl modules exist.  Yes, they'll most 
 likely need customization (in my case, I've customized AuthCookie, and 
 tied it to Apache::Session.  It wasn't the end of the world, but it 
 wasn't trivia.   A cookie by itself is of rather limited usefulness.

You can avoid most of the grunge work here by using one or more
of the high-level modules like Embperl, Apache::ASP, Mason, etc.
that handle sessions and a lot more for you.

One thing that I don't think anyone has mentioned so far that is
an inherent advantage to a web interface is that unless you really
go out of your way to break it, you automatically end up with
a well-defined client-server network interface.   Thus as you
or your users discover parts of the application that can be
completely automated later, someone can easily whip out some
scripts with LWP to get/post anything without human intervention
where with a traditional GUI it takes a massive effort to ever go
beyond pointing and clicking.   Making an interface easy to
use is often at odds with making it easy to automate, and in
the long run anything you can make 'full-auto' is going to save
time and money (unless the object of the site is to make the
user view a lot of banner ads...).

  Les Mikesell
[EMAIL PROTECTED]




Re: Is mod_perl the right solution for my GUI dev?

2002-06-26 Thread Fran Fabrizio

Ron Savage wrote:

On Tue, 25 Jun 2002 12:22:15 -0400, Fran Fabrizio wrote:

Fran

[snip]

from first-hand experience, hell my current project has both of
  

these
things in a web interface, and neither were trivial.  I crafted an
expandable-tree menu (think Windows Explorer style menu) from HTML,
CSS,
JavaScript and HTML::Template.  I have graphs dynamically generated


Did you consider using my module CGI::Explorer?

  

I wasn't aware of it's existence.  I just now downloaded it and played 
with the demo.  Unfortunately, it looks like it might not have helped in 
my case.  It appears that it is doing a round trip to the server and 
back on every open/close of a node.  That's exactly what I had to avoid. 
 Our tree has  1000 elements (and growing) pulled dynamically out of a 
database.  In a multi-user environment we don't want to be hitting the 
server that hard just for a navigational menu for every click of every 
user.  We serve up the entire tree when the user logs in, and all of the 
state maintenance is handled client-side in terms of what's been opened, 
etc...  we never go back to the server unless the user has requested a 
refresh of the tree.  I could be wrong in how your module operates, 
that's just from a 3 minute session with the demo.  It's good that 
you've made this available though, most people will have more reasonably 
sized and constructed trees than we do and should find that module 
useful. :-)

-Fran

PS - May want to take a look at it on Mozilla.  There seemed to be 
slight table layout issues on my Mozilla 1.0 (yeah, I need to upgrade 
:-) that caused the graphics to slightly misalign.





Re: Is mod_perl the right solution for my GUI dev?

2002-06-26 Thread Ron Savage

On Wed, 26 Jun 2002 09:37:58 -0400, Fran Fabrizio wrote:

Fran

Ron Savage wrote:

On Tue, 25 Jun 2002 12:22:15 -0400, Fran Fabrizio wrote:

Fran

[snip]

from first-hand experience, hell my current project has both of


these
things in a web interface, and neither were trivial.  I crafted an
expandable-tree menu (think Windows Explorer style menu) from
HTML,
CSS,
JavaScript and HTML::Template.  I have graphs dynamically
generated


Did you consider using my module CGI::Explorer?



I wasn't aware of it's existence.  I just now downloaded it and
played
with the demo.  Unfortunately, it looks like it might not have
helped in
my case.  It appears that it is doing a round trip to the server and
back on every open/close of a node.  That's exactly what I had to
avoid.

Yes, it does a round trip. Such is life.

Our tree has  1000 elements (and growing) pulled dynamically out of
a
database.  In a multi-user environment we don't want to be hitting
the
server that hard just for a navigational menu for every click of
every
user.  We serve up the entire tree when the user logs in, and all of
the
state maintenance is handled client-side in terms of what's been
opened,
etc...  we never go back to the server unless the user has requested
a
refresh of the tree.  I could be wrong in how your module operates,
that's just from a 3 minute session with the demo.  It's good that
you've made this available though, most people will have more
reasonably
sized and constructed trees than we do and should find that module
useful. :-)

Thanx.

-Fran

PS - May want to take a look at it on Mozilla.  There seemed to be
slight table layout issues on my Mozilla 1.0 (yeah, I need to
upgrade
:-) that caused the graphics to slightly misalign.

That may be due to me using some non-standard (Netscape-specific)
HTML. Eg 'absmiddle' as in
$q - img({src = $image, align = 'absmiddle', width = 17, height
= 17})

And when Mozilla has stabilized, in a year or so, I'll consider
installing it. Reports of its stability today are not going to sway
me :-). Such, too, is life.

--
Cheers
Ron Savage, [EMAIL PROTECTED] on 27/06/2002
http://savage.net.au/index.html





Is mod_perl the right solution for my GUI dev?

2002-06-25 Thread Ganesan M

Hello list,

Please pardon me if it is not related to the list.

  We have a C application which runs on both SCO open server
and Red Hat Linux with Oracle/Informix database. It is a text
based application originally developed for CRDS box with UNOS.

  Now management needs a GUI for the text application.I have
developed some report screens using Apache/Mod_perl/GD.
They kind of liked it.  Now they want to do a full fledged GUI.

 My suggestions are:

1. Get rid  of screen driver codes from the existing C programs
2. Use Inline C in the mod_perl programs and run it through apache
webserver as a web page.

But, some of my colleagues are suggesting to write a Java/VC++
Interface for the GUI.

  Any suggestions on this will be really appreciated.

Thanks,
Ganesh.




Re: Is mod_perl the right solution for my GUI dev?

2002-06-25 Thread Per Einar Ellefsen

At 16:09 25.06.2002, Ganesan M wrote:
Hello list,

 Please pardon me if it is not related to the list.

   We have a C application which runs on both SCO open server
and Red Hat Linux with Oracle/Informix database. It is a text
based application originally developed for CRDS box with UNOS.

   Now management needs a GUI for the text application.I have
developed some report screens using Apache/Mod_perl/GD.
They kind of liked it.  Now they want to do a full fledged GUI.

  My suggestions are:

 1. Get rid  of screen driver codes from the existing C programs
 2. Use Inline C in the mod_perl programs and run it through apache
webserver as a web page.

But, some of my colleagues are suggesting to write a Java/VC++
Interface for the GUI.

The problem you're looking at is rather different: should you try and 
create a *web frontend* or should you create a normal GUI? Largely 
depending on the nature of your application, the answers will be different.

I can't say much more without knowing more about what you're trying to do: 
but to me it seems like if you need GD to do the job, you should probably 
be looking at a standard GUI instead. This needn't be done in Java or VC++, 
you could use any programming language with a windowing library, like Perl 
with Tk (or Gtk or Qt bindings, but I don't know much about any of those) 
or anything else.

My answer: it depends :)


-- 
Per Einar Ellefsen
[EMAIL PROTECTED]





Re: Is mod_perl the right solution for my GUI dev?

2002-06-25 Thread Ganesan M


At 16:09 25.06.2002, Ganesan M wrote:
  My suggestions are:

 1. Get rid  of screen driver codes from the existing C programs
 2. Use Inline C in the mod_perl programs and run it through apache
webserver as a web page.

But, some of my colleagues are suggesting to write a Java/VC++
Interface for the GUI.

The problem you're looking at is rather different: should you try and
create a *web frontend* or should you create a normal GUI? Largely
depending on the nature of your application, the answers will be different.

I can't say much more without knowing more about what you're trying to do:
but to me it seems like if you need GD to do the job, you should probably
be looking at a standard GUI instead. This needn't be done in Java or VC++,
you could use any programming language with a windowing library, like Perl
with Tk (or Gtk or Qt bindings, but I don't know much about any of those)
or anything else.


Please correct me if this is wrong.

  What is the big difference between web frontend and a normal GUI?
Can't
you do everything in the web frontnend that you do in normal GUI?

Ganesan.




FW: Is mod_perl the right solution for my GUI dev?

2002-06-25 Thread Prakash Chatterjee



-Original Message-
From: Prakash Chatterjee [mailto:[EMAIL PROTECTED]]
Sent: 25 June 2002 16:00
To: Ganesan M
Subject: RE: Is mod_perl the right solution for my GUI dev?



Actually, no you can't. At least not without masses of Javascript and god
knows what else. And of course you'll have no guarantee that it won't fall
over on the client's browser.

 Please correct me if this is wrong.

  What is the big difference between web frontend and a normal GUI?
 Can't you do everything in the web frontnend that you do in normal
GUI?

-Original Message-
From: Ganesan M [mailto:[EMAIL PROTECTED]]
Sent: 25 June 2002 15:54
To: [EMAIL PROTECTED]
Subject: Re: Is mod_perl the right solution for my GUI dev?



At 16:09 25.06.2002, Ganesan M wrote:
  My suggestions are:

 1. Get rid  of screen driver codes from the existing C programs
 2. Use Inline C in the mod_perl programs and run it through apache
webserver as a web page.

But, some of my colleagues are suggesting to write a Java/VC++
Interface for the GUI.

The problem you're looking at is rather different: should you try and
create a *web frontend* or should you create a normal GUI? Largely
depending on the nature of your application, the answers will be different.

I can't say much more without knowing more about what you're trying to do:
but to me it seems like if you need GD to do the job, you should probably
be looking at a standard GUI instead. This needn't be done in Java or VC++,
you could use any programming language with a windowing library, like Perl
with Tk (or Gtk or Qt bindings, but I don't know much about any of those)
or anything else.


Please correct me if this is wrong.

  What is the big difference between web frontend and a normal GUI?
Can't
you do everything in the web frontnend that you do in normal GUI?

Ganesan.





Re: Is mod_perl the right solution for my GUI dev?

2002-06-25 Thread Fran Fabrizio




Please correct me if this is wrong.

  What is the big difference between web frontend and a normal GUI?
Can't
you do everything in the web frontnend that you do in normal GUI?


No, not at all.  The web is bound by HTTP and HTML.  This comes with 
many ramifications.

There are three main areas where I have and you will run into problems:

- Real-time data updates.  HTTP is stateless: it serves up the page then 
closes the connection.   Any updating involves a round-trip back to the 
server.  In traditional GUI, you just hold a db connection and repaint 
the areas that are updated.
- State maintenance.  Since it is stateless, you have to jump through a 
lot of hoops to realize that two requests are coming from the same 
person, since they could be handled by two different child processes or 
even two different servers.  This has all sorts of ramifications on user 
login, user preferences, where the user was in the application, etc... 
you have to do a lot of work on the server side to realize that it's the 
same client that keeps talking to you.
- Fancy interface widgets/layouts.  HTML/CSS/JavaScript/DHTML can only 
get you so far.  If you need fancy menu types, forms, layouts, etc... it 
quickly becomes tedious/impossible on the web.

This is just the tip of the iceberg.  

-Fran





Re: Is mod_perl the right solution for my GUI dev?

2002-06-25 Thread Ganesan M

Thanks for the info.

What I am looking for here is: just a front-end GUI which will interact with
the
existing C programs.   The base application is written in C.   That is
not going to change(That is one heck of the job to re-write the C
application).  Perl
programs will be used to get the data from C programs and display
it in a Graph and some fancy menus will be used to drive the C applicaiton.

For graph I will be using GD and for menus CGI/Javascript/DHTML/CSS
and of course, Apache is my web interface.

How good is this solution?

Ganesan.

Please correct me if this is wrong.

  What is the big difference between web frontend and a normal GUI?
Can't
you do everything in the web frontnend that you do in normal GUI?


No, not at all.  The web is bound by HTTP and HTML.  This comes with
many ramifications.

There are three main areas where I have and you will run into problems:

- Real-time data updates.  HTTP is stateless: it serves up the page then
closes the connection.   Any updating involves a round-trip back to the
server.  In traditional GUI, you just hold a db connection and repaint
the areas that are updated.
- State maintenance.  Since it is stateless, you have to jump through a
lot of hoops to realize that two requests are coming from the same
person, since they could be handled by two different child processes or
even two different servers.  This has all sorts of ramifications on user
login, user preferences, where the user was in the application, etc...
you have to do a lot of work on the server side to realize that it's the
same client that keeps talking to you.
- Fancy interface widgets/layouts.  HTML/CSS/JavaScript/DHTML can only
get you so far.  If you need fancy menu types, forms, layouts, etc... it
quickly becomes tedious/impossible on the web.

This is just the tip of the iceberg.

-Fran







Re: Is mod_perl the right solution for my GUI dev?

2002-06-25 Thread Rob Nagler

Fran Fabrizio writes:
 - Real-time data updates.  HTTP is stateless: it serves up the page then 
 closes the connection.   Any updating involves a round-trip back to the 
 server.  In traditional GUI, you just hold a db connection and repaint 
 the areas that are updated.

Solved with refresh?  JavaScript and Java can also help here.
For interactivity, check out:

http://www.cs.brown.edu/people/dla/polytope/tetra.html

 - State maintenance.  Since it is stateless, you have to jump through a 
 lot of hoops to realize that two requests are coming from the same 
 person, since they could be handled by two different child processes or 
 even two different servers.  This has all sorts of ramifications on user 
 login, user preferences, where the user was in the application, etc... 
 you have to do a lot of work on the server side to realize that it's the 
 same client that keeps talking to you.

Cookies work fine.

 - Fancy interface widgets/layouts.  HTML/CSS/JavaScript/DHTML can only 
 get you so far.  If you need fancy menu types, forms, layouts, etc... it 
 quickly becomes tedious/impossible on the web.

Tedious is questionable.  Impossible, I seriously doubt.  Remember,
you can always delegate part of your screen to a Java applet, although
I strongly recommend you avoid this.

 This is just the tip of the iceberg.  

Let's talk about the positives:

+ You update the server and instantly all clients are up-to-date.

+ You can detect incorrect usage, bugs, etc. by parsing a single log
  file, in real-time

+ The system is immune to operate system upgrades.  And DLL hell on
  Windows boxes.

+ You access the system from anywhere reliably and securely.  You
  don't have to open up a database connection to anybody but the Web
  server(s).

+ There is only one version of the software.

+ Support people can view the output sent to the client exactly as
  the client received it.  Including following a series of actions.

+ The use of a Web browser is familiar to most users.

+ The user can keep multiple views of the pages she wants, not what the
  application decides to offer.

+ Bookmarks allow users to structure their view of the application.
  Advanced users can create new organizations (short cut pages) for
  themselves and their co-users.

+ Users can share information easily (send page by email, mail
  bookmarks, print page, save to disk, save picture, etc.)

I'm sure others will add to the list.

Rob
  





Re: Is mod_perl the right solution for my GUI dev?

2002-06-25 Thread Ganesan M


[snip]


The problem with all of the above is that it takes a VERY VERY complex
analysis, planning, deployment, and long term environmental support
infrastructure that most companies just don't have.  So while J2EE all
sounds great on paper, implementation of any reasonable J2EE system
actually
can create MORE man hours of work than a more straightforward procedural
style implementation.  It a matter of where you want to put the work, on
the development side or on the implementation/support side.

People forget or (don't want to remember?) that perl can utilize OOP,
Design
Patterns, and just good old polymorphism in a more straight forward
procedural style implementation.  It's especially important to think in
these way in those spots you can guess they are going to scope creep on
you down the road.


[snip].

People can archetect the most elegant system in the world but if you don't
have the people to make it all happen, then you have nothing after months
and months of development work.

-Zac


Zac is absolutely 100% right. That was one heck of the answer.  This will be
very useful when I talk to the management.  I hope zac doesn't mind if I
quote his e-mail in the meeting ;-).

Ganesan.

   My suggestions are:
 
  1. Get rid  of screen driver codes from the existing C programs
  2. Use Inline C in the mod_perl programs and run it through
apache
 webserver as a web page.
 
 But, some of my colleagues are suggesting to write a Java/VC++
 Interface for the GUI.





Re: Is mod_perl the right solution for my GUI dev?

2002-06-25 Thread Fran Fabrizio

Rob Nagler wrote:

  Solved with refresh? JavaScript and Java can also help here.

Yes, solved with refresh.  Of the entire page.  Which may be quite 
complex and have some hefty SQL queries, etc...not to mention other 
issues such as network latency, the re-rendering of the page, etc...all 
distract from the user experience, which may or may not be an issue for 
the particular application.  For example, I once coded an HTML-based 
game where you guessed movie quotes and if you got it right, you 
replaced it with one of your own.  Two of the issues were 1. I wanted a 
list of who was currently playing but it quickly got out of date and to 
update it would mean to refresh the entire page, go to frames, or put 
the list in a separate window, all messy.  2.  When one user correctly 
guessed a quote, I would have liked to have all the other users' screens 
update with that new info, but that's impossible without having 
something like a java applet embedded in the page checking for new data 
and forcing a refresh of the page.  Yes it works, but it's messy once 
again.  These are real issues, and issues which I have solved as best as 
possible on the web but that are easier in other systems.

Cookies work fine.

You oversimplify.  Cookies do work fine.  What creates, reads, modifies, 
validates the cookies?  What ties the cookies to useful state 
information that is stored server-side?  There's a lot of coding 
potentially involved.  Yes, perl modules exist.  Yes, they'll most 
likely need customization (in my case, I've customized AuthCookie, and 
tied it to Apache::Session.  It wasn't the end of the world, but it 
wasn't trivia.   A cookie by itself is of rather limited usefulness.

Tedious is questionable.  Impossible, I seriously doubt.  Remember,
you can always delegate part of your screen to a Java applet, although
I strongly recommend you avoid this.

Reinventing common widgets by coding up in HTML, CSS, JavaScript 
something that's a one-liner in a typical GUI environment is not 
tedious?  I think you're oversimplifying again.  As for a Java applet, a 
java applet ceases to be a web frontend.  It's a GUI front end using the 
web as a communication/distribution layer.  Once it's launched, you use 
stateful sockets to talk back to the server, etc...  If you find 
yourself doing a majority of your interface via java applet (which is 
not something you want to try if cross-browser implementation is a 
desired feature, by the way), then you might as well make it a 
standalone java app, especially since you're apt to hit the applet 
security sandbox on any sort of robust app.

There are a TON of positives to web frontends.  I'm not arguing.  I have 
made my living for the past 8 years building these things, I'm a friend 
of the web front end. =)  You've captured the positives quite well, so I 
don't need to reiterate.  But let's not fall into the trap of saying the 
web is the best tool for every front end usage imaginable.  The user has 
said fancy menus and graphs are to be the mainstay of the app.  I speak 
from first-hand experience, hell my current project has both of these 
things in a web interface, and neither were trivial.  I crafted an 
expandable-tree menu (think Windows Explorer style menu) from HTML, CSS, 
JavaScript and HTML::Template.  I have graphs dynamically generated 
using GD::Graph.  Both took time, lots of trial and error, and lots of 
hair-pulling.   Massaging the data for GD::Graph was just one chore I 
remember being harder than expected.  These tools worked and are great 
tools that enable things on the web that aren't otherwise possible, but 
it was hard -because- it was a web app with all the inherent limitations 
- these things are much more native to traditional GUIs.  In my case, we 
have a -need- to be a web app and so I'm willing to jump through hoops 
to make the interface richer where we need it to be, but if I was 
choosing between web and traditional, and I didn't -need- web, and I 
knew that graphs and fancy widgets were the mainstay of my app, I'd 
think twice before trying web.  Fancy widgets especially are not that 
much fun to code on the web when a very robust library of them already 
exist for most GUI systems.

Yes, it can be done (though there are still some things which I found 
impossible, some widgets which I don't think can be duplicated 
acceptably on the web.  I like clicking on column headers and have them 
resort without doing a round-trip, for instance) but it's not much fun 
sometimes.  That's my only point.

-Fran






Re: Is mod_perl the right solution for my GUI dev?

2002-06-25 Thread Ganesan M

Thank you all for all your input on this.

Here are the reasons why I chose web interface using Apache/CGI/Mod_perl/GD
for our front-end reports.


*  Quick solution. Our management needed the report screens in a very short
period.

*   Our C application runs on two different OS and two different DB.
SCO openserver and Linux, Informix and Oracle.  Our front-end needed
multi-platform support.

* Perl can go with any major language. AFAIK, perl interaact very well with
any language.

* Re-designing the look and feel (appearance) is very easy with web
interface.

* GD generates graphs on the fly.  I don't know which other softwares do the
same.

* With Apache/perl web interface you do not need to install anything
at the client side. (No dll/library installation problems).

* As Zac Morris said, we did not have time and resources to go through a
complex J2EE deployment.

  I would like to continue in the same web front-end path for more
interactive forms.  May be I will have to fight with Javascript more.
I just want to know is this the right path? Someone suggested
perl/TK.  Again, you have to write 4 different codes for 4 different
platforms.

  More suggestions on this are welcome.

Once agin, thanks for all your input.

Ganesan.




Re: Is mod_perl the right solution for my GUI dev?

2002-06-25 Thread Fran Fabrizio


Well it sounds like most of your design goals are pointing you towards 
the web interface.  These same goals are what made me choose web even 
though I knew that I'd have to make some sacrifices on the interface. 
 You'll be able to do it fine on the web, just be prepared to be 
flexible with the interface and learn to accept/work around the web's 
inherent limitations.  Some thoughts:

* GD generates graphs on the fly.  I don't know which other softwares do the
same.

GD sits on top of C's gd library.

  I would like to continue in the same web front-end path for more
interactive forms.  May be I will have to fight with Javascript more.

Yes, much more.  But a book I found helpful was 'DHTML and CSS for the 
WWW'.  It has helpful examples of various menus and widgets that can be 
accomplished on the web to make an interface richer.

And with that, I think we've officially left the topicality of a 
mod_perl list. :-)

Enjoy,
Fran




RE: Is mod_perl the right solution for my GUI dev?

2002-06-25 Thread Vuillemot, Ward W

   :I would like to continue in the same web front-end 
   :  path for more
   :  interactive forms.  May be I will have to fight with 
   :  Javascript more.
   :  
   :  Yes, much more.  But a book I found helpful was 'DHTML 
   :  and CSS for the 
   :  WWW'.  It has helpful examples of various menus and 
   :  widgets that can be 
   :  accomplished on the web to make an interface richer.


While not germane to mod_perl, I did want to add my two cents to this.  I
did not follow the rest of the thread, so I am not sure in what context you
want to deploy a web-site, but be careful with JS and other client-side
technologies.  IMO, they should be used when they are value-added, but do
not become mission critical.  In that, they might add some functionality
that is useful but not vital for the user to complete the forms or navigate
the site.  Even in an intranet setting, unless you can positively ensure
what browsers are used, you will encounter situations where things just do
not work for a certain set of users.  When using these technologies, do not
be tempted to use browser-specific functions or plug-ins unless you are
willing to accept that people will have to use your choice of browser.
Follow open standards and rely of server-side solutions as in the end they
will save you a lot of headaches and enable you to support the greatest
variety of users with the least amount of effort.  

Good luck!

Cheers,
Ward