Thread: Re: [Perl-widget-developer] How are we going to come up to speed as a team?
Status: Alpha
Brought to you by:
spadkins
From: <ce...@si...> - 2001-06-03 08:08:57
|
> I see lots of enthusiasm for widgets and not much consensus on what > they are or how they work (or how they're built on the inside). Well, dictionary.com defines it as such: 2. [possibly evoking "window gadget"] In graphical user interfaces, a combination of a graphic symbol and some program code to perform a specific function. E.g. a scroll-bar or button. Windowing systems usually provide widget libraries containing commonly used widgets drawn in a certain style and with consistent behaviour. I think that is a simple enough start. But there is a bit of a difference in what we are trying to do, and what constitutes a conventional Widget Library. We are taking existing Widgets and 'beefing' them up. Essentially, we are making a Widget Convenience Class, that gives us a bridge between the user-interface and the back-end code. Part of this is giving the widgets persistence, making them Multilingual, or providing them with theme support. And the other part of it is taking the existing widgets, and building more complex widgets (taking a select box widget, and making a date widget out of it). But the end result we should be aiming at, is a library that will make it easiers for programmers and designers to build user-interfaces in perl (with a heavy slant to the HTML programmer/designer). > So how are we going to come up to speed as a team? I think it will take more than a week of working together before any group of individuals can consider themselves a team. Especially since everyone is working remotely. The fact that we have a working codebase is a good sign (Thanks mostly to Stephen). I think it will become easier once everyone finds a corner of the code where they feel comfortable, and where they can expose their strengths. > #2. Let's agree on *what* we are building and *what* we will call it. > Also, I have called it the Perl Widget Library. This is a good enough name for me. If I was searching for a project that would help me build widgets in perl, those are probably the exact three words I would type into google. > #3. Let's agree about Why We Are Doing This. This might sound selfish, but I am doing this because I want to build on my perl skills. I wrote my first perl program back in '94, but I have mostly worked on projects by myself. I feel I can learn a lot from working on a distributed project. Mind you, I also think this project will be useful in my 9 to 5 job when it is finished :) > #5. Let's address changes in *usage* first. > Let's not focus first and foremost on what a "Widget::State::CGI" > object is. Let's focus on whether > > use Widget; > $wc = Widget->controller({ cgi => $cgi }); > $birth_dt = $wc->widget("birth_dt"); > print $birth_dt->display(); > > is the right way to use a widget library. > This is really just a code-driven refinement of the Use Cases of the > Perl Widget Library. Yes. We need to see how the library will be used before we can see how to develop the inards. 2 things about the above code (I have addressed these issues in my patch from earlier today). I think we should use the hash method of providing options to a constructor (but not a hashref). Also, I think that any aspect of the widget should be configureable from the code so that a configuration file is optional. This will have some implications on the current caching mechanism (if I call on the same widget with different options but the same name, what should I get back?) use Widget; $wc = Widget->controller(-cgi => $cgi); $birth_dt = $wc->widget( -name => 'birth_dt', -default => '1970-01-01', -format => 'YYYY-MM-DD', ); print $birth_dt->display(); I would like to open up the debate about the use of 'display' or 'html' again. I am wondering about the possibility of confusion between 'displaying' the code that generates the widget, and 'displaying' the value of the widget. Also, display() seems to imply a print. What if we got rid of both html() and display() and used draw() or render() for generating the code, and leave value() as it is. Or, if you want, you can shoot me for opening up this can of worms again :) > #6. Let's address changes in *internal design* next. > > If you understand what is written and why it is that way, I am open > to any and all suggestions to change it. I will leave this section blank while we are working on number 5... Cees Hek |
From: Issac G. <ne...@wr...> - 2001-06-03 11:39:11
|
> I would like to open up the debate about the use of 'display' or 'html' > again. I am wondering about the possibility of confusion between > 'displaying' the code that generates the widget, and 'displaying' the > value of the widget. Also, display() seems to imply a print. What if we > got rid of both html() and display() and used draw() or render() for > generating the code, and leave value() as it is. Or, if you want, you can > shoot me for opening up this can of worms again :) > How about activate() or something else that can generically describe the Widget... Theoretically, we could creaate a Timer widget (that does some event after a certain time elaplses). In such a case, words like "display" "draw" or "render" don't make sense... Of course, we're not really "activating" the widgets either, as we're creating them on-the-fly in the target environment (e.g., HTML), but my personal hilosophy when designing "thing"s to be used by developers is to try to pick names for methods and properties that are easy to understand and _make sense_... They'll appreciate it. Issac |
From: Gunther B. <gu...@ex...> - 2001-06-03 15:38:07
|
At 02:17 PM 6/3/01 +0200, Issac Goldstand wrote: > > I would like to open up the debate about the use of 'display' or 'html' > > again. I am wondering about the possibility of confusion between > > 'displaying' the code that generates the widget, and 'displaying' the > > value of the widget. Also, display() seems to imply a print. What if we > > got rid of both html() and display() and used draw() or render() for > > generating the code, and leave value() as it is. Or, if you want, you can > > shoot me for opening up this can of worms again :) > > > >How about activate() or something else that can generically describe the >Widget... Theoretically, we could creaate a Timer widget (that does some >event after a certain time elaplses). In such a case, words like "display" >"draw" or "render" don't make sense... Of course, we're not really >"activating" the widgets either, as we're creating them on-the-fly in the >target environment (e.g., HTML), but my personal hilosophy when designing >"thing"s to be used by developers is to try to pick names for methods and >properties that are easy to understand and _make sense_... They'll >appreciate it. I agree that display, draw or render seems quite active as if to imply print. But these are fairly standard (especially draw) in GUI systems. The fact that a component is draw() was called doesn't actually mean it is displayed. In some cases, the draw can be just placed on a backend bitmap which will never display (double buffering). I dislike the name draw because it has a connotation of raw bitmaps (like drawing programs). By far, the best method name I have seen is render. It is semantically accurate. The widget is being rendered but it's not being displayed. Activate is one that I dislike because it implies you do it once or implies a state change (active/inactive). This is not true. There is a distinct value being returned when render() would be called. Later, Gunther |
From: Issac G. <ne...@wr...> - 2001-06-03 18:50:33
|
I'll second "render"... Issac ----- Original Message ----- From: "Gunther Birznieks" <gu...@ex...> To: <Per...@li...> Sent: Sunday, June 03, 2001 17:38 Subject: [Perl-widget-developer] Widget display/html output method name > At 02:17 PM 6/3/01 +0200, Issac Goldstand wrote: > > > > > I would like to open up the debate about the use of 'display' or 'html' > > > again. I am wondering about the possibility of confusion between > > > 'displaying' the code that generates the widget, and 'displaying' the > > > value of the widget. Also, display() seems to imply a print. What if we > > > got rid of both html() and display() and used draw() or render() for > > > generating the code, and leave value() as it is. Or, if you want, you can > > > shoot me for opening up this can of worms again :) > > > > > > >How about activate() or something else that can generically describe the > >Widget... Theoretically, we could creaate a Timer widget (that does some > >event after a certain time elaplses). In such a case, words like "display" > >"draw" or "render" don't make sense... Of course, we're not really > >"activating" the widgets either, as we're creating them on-the-fly in the > >target environment (e.g., HTML), but my personal hilosophy when designing > >"thing"s to be used by developers is to try to pick names for methods and > >properties that are easy to understand and _make sense_... They'll > >appreciate it. > > I agree that display, draw or render seems quite active as if to imply > print. But these are fairly standard (especially draw) in GUI systems. The > fact that a component is draw() was called doesn't actually mean it is > displayed. In some cases, the draw can be just placed on a backend bitmap > which will never display (double buffering). > > I dislike the name draw because it has a connotation of raw bitmaps (like > drawing programs). > > By far, the best method name I have seen is render. It is semantically > accurate. The widget is being rendered but it's not being displayed. > > Activate is one that I dislike because it implies you do it once or implies > a state change (active/inactive). This is not true. There is a distinct > value being returned when render() would be called. > > Later, > Gunther > > > _______________________________________________ > Perl-widget-developer mailing list > Per...@li... > http://lists.sourceforge.net/lists/listinfo/perl-widget-developer > |