From: C Kevin Provance on

"Bill McCarthy" <TPASoft.com Are Identity Thieves> wrote in message
news:u3YNbfefJHA.5540(a)TK2MSFTNGP06.phx.gbl...
| Huh huh. And Jabaco does NOT provide that at all. Vb.NET is miles ahead
of
| it on that front. IF you think VB.NET is not good at that, then Jabaco is
| beyond hope.

You need to get that .NET disk out of your @$$ and step back into reality.
Douche.


From: Ulrich Korndoerfer on
Olaf, did you read my post?

--
Ulrich Korndoerfer

VB tips, helpers, solutions -> http://www.proSource.de/Downloads/
From: Schmidt on

"Ulrich Korndoerfer" <ulrich_wants_nospam(a)prosource.de> schrieb im
Newsbeitrag news:uaKA3GnfJHA.4868(a)TK2MSFTNGP05.phx.gbl...

> Olaf, did you read my post?

Yes, I've read it - sorry for not responding for that long -
but it had such a "frightening size" ... ;-)

Maybe a short-reply will do too, if you don't mind.
Your infos about the UPX-stuff are convincing,
so - thanks for pulling that "out of the Web".

Maybe I should simply offer two zipped versions
of the framework then, and write some comments
about the version, which contains the UPXed binaries.

As said, my load-tests here (I usually work against a
network-share, which hosts my test-projects) are
somewhat better than with the non-upxed versions,
and normally one will not see all that much of a
difference regarding mem-consumption, because
MultiProcess-usage against the framework-dlls
sitting in an App-Folder is probably not the main-
use-case.
As the main-argument against "upxing" probably
remains your mentioned "nervous behaviour" of
some of the cheaper Virus-Scanners when they
find upxed stuff.

Think with the parallel-offering of both variants
everyone can choose what he wants to use later
on, without the need to upx or test the "plays
together-behaviour" of the upxed versions himself.
What I do know is, that - when you place upxed
binaries in a Zip, you gain some other 20% or so
regarding the download-size (at least for many
VB-compiled binaries this holds true, because
the UPX-packer apparently leaves out some
parts in the PE-structure then and in compressing
executable code it does its job better than the
"more generic" Zip-Inflate-Algo).

---------------------------
Regarding Cairo:
I was playing "ping-pong" with Jeremiah the last
week - and his Form-engine can now already render
the first ported Cairo-Widgets, but for a while that worked
only on my own machines, which we already tracked
down to a missing msvc90rt.dll. This dependency
was introduced by the cairo-satellite-subprojects
(libpng.lib and zlib.lib) which I forgot to set the /MT-
C-compiler (linker) -switch too.
The new, recompiled cairo2_engine.dll binary size is
now larger of course (ca. 830kB, upxed ca. 370kB) -
but not all that much.

I will post the source of the first cairo-ported widgets
to you, when I'm done with the port of the widgets
which handle the TextEditing, since you had an interest
in them - currently I'm yet at the Button-Widgets
(including the Check- and Option-variants) - and thereby
optimizing the Cairo-Wrappers-interfaces especially
for less needed lines of code when writing drawing-code
for the widget-implementations.
That cycles currently too much back and forth - so
not the right time yet for something like code-beautifying -
the dust has to settle a bit first.

[Coding rules:]
Definitely important - but let's talk about that, when
the project is announced officially - and yes, I know
that my style is "no style at all" - but at least we can
copy examples from it for new contributors in a section:
"what you definitely shouldn't do:" <g>

[Internationalization/Localization]
Nice ideas (already archived here <g>) - but not (yet)
the right time IMO, to incorporate that - although we
also should respect something in this regards soon.

But I want to keep the first incarnation of the widgets-
project yet simple, to make it easier for potential
contributors, to "dive in" - I'd love to integrate the
internationalization-support - and also the themeing-
engine support, as soon as there's already some experience
there in the "community" - regarding the understanding
of the engine - and how to efficiently implement new
widgets. Let's get used to the new model first over
a few months.
But then we should integrate this "enhanced stuff" sooner
than later, before the widgets get to a level, which makes
such a change more difficult.


[Actions, Statemanagement and Transitions]
Yep - all the techniques which are required in clean
MVC (Model View Controller) or MVP (Model View
Presenter) scenarios.
But here I'd like to follow the same "rule" as with the
topic above - let's wait a bit with that enhanced stuff.

Our primary goal should be, to not make an "elitists" platform
for "freaks only" - it should be an easy to use environment,
suitable also for beginners who already know the base-
principles of VB5/6 (Forms, "normal" Events, etc.).

What I've already builtin is something, which allows an
Event-Bubbling back over the Parent(s) - each Parent
can then decide, if he wants to delegate the Event one Level
up, or simply does nothing in this regard - and then the
Event only occurs in the first Parent (of the raising Child).
This Event looks like this:
Event ChildStateChanged(Sender As Object, StateInfo as Variant, _
StateInfoEx as Variant)

And then there's also the cEventCollection-Class inside
dhRichClient.dll - which allows LateBound Events -
I just implemented a simple Control-Array-like approach
using this Event-Conatiner in combination with a group
of OptionButtons - works nice so far with only a few
lines of code.

So with a combination of the just mentioned methods, we
will not have to dive too soon into that advanced Event-
and State-Model, which we could implement later on -
and then not based on VBs Std-EventMechanism, but
using an Interface-based Event-mechanism which should
work faster.
But maybe the stuff I just mentioned will already fullfill
most of the advanced requirements - and "normal"
Widget-Events are of course also there, directly at
Control-, respective Widget-level - those who already
have implemented a VB-UserControl will see the same
things as they were used to within VB-UserControls,
only that everything works class-based.

Regards,

Olaf


From: Ulrich Korndoerfer on
Hi Olaf,

Schmidt schrieb:

> but it had such a "frightening size" ... ;-)

Some 300 lines frigthen you? :-)

> Maybe a short-reply will do too, if you don't mind.

That's ok.

[UPX]
> As said, my load-tests here (I usually work against a
> network-share, which hosts my test-projects) are
> somewhat better than with the non-upxed versions,
> and normally one will not see all that much of a
> difference regarding mem-consumption, because
> MultiProcess-usage against the framework-dlls
> sitting in an App-Folder is probably not the main-
> use-case.

You forgot that dll sharing is still "en vogue". Not in every case it
makes sense to deliver needed dlls as "local" dlls in the applications
folder.

Eg. for little desktop gadgets like clocks, rss readers, (audio) stream
players etc. it would make sense to share the dlls. They show their GUI
on the desktop, startup when the system starts up, and therefore eat ram
all the time. Now when the dlls are upxed, each of this little helpers
loads all needed dlls as private copy.

> ---------------------------
> Regarding Cairo:
> ...
> I will post the source of the first cairo-ported widgets
> to you, when I'm done with the port of the widgets
> which handle the TextEditing, since you had an interest
> in them - currently I'm yet at the Button-Widgets
> (including the Check- and Option-variants) - and thereby
> optimizing the Cairo-Wrappers-interfaces especially
> for less needed lines of code when writing drawing-code
> for the widget-implementations.
> That cycles currently too much back and forth - so
> not the right time yet for something like code-beautifying -
> the dust has to settle a bit first.

Ok.

> ...
> [Internationalization/Localization]
> Nice ideas (already archived here <g>) - but not (yet)
> the right time IMO, to incorporate that - although we
> also should respect something in this regards soon.
>
> But I want to keep the first incarnation of the widgets-
> project yet simple, to make it easier for potential
> contributors, to "dive in" - I'd love to integrate the
> internationalization-support - and also the themeing-
> engine support, as soon as there's already some experience
> there in the "community" - regarding the understanding
> of the engine - and how to efficiently implement new
> widgets. Let's get used to the new model first over
> a few months.
> But then we should integrate this "enhanced stuff" sooner
> than later, before the widgets get to a level, which makes
> such a change more difficult.

That was my point. I just wanted to remind you, that you keep in mind
that such things should be added and that it may be probably to late
later to be able to integrate such things with small effort.

> ...
> [Actions, Statemanagement and Transitions]
> Yep - all the techniques which are required in clean
> MVC (Model View Controller) or MVP (Model View
> Presenter) scenarios.
> But here I'd like to follow the same "rule" as with the
> topic above - let's wait a bit with that enhanced stuff.

And same concern as from above: if the code is to advanced, it may be
not easy to "learn new things to the old horse" ;-)

> ...
> What I've already builtin is something, which allows an
> Event-Bubbling back over the Parent(s) - each Parent
> can then decide, if he wants to delegate the Event one Level
> up, or simply does nothing in this regard - and then the
> Event only occurs in the first Parent (of the raising Child).
> This Event looks like this:
> Event ChildStateChanged(Sender As Object, StateInfo as Variant, _
> StateInfoEx as Variant)

Should'nt there be bidirectional bubbling? Eg. if an option button in a
option group gets checked, it firstly (before it changes its state)
should notify the root, then the childs from there bubbling down until
it reaches the option button himself. So parents (eg. the grouping
parent of the buttons) can decide what to do (eg. uncheck another
button). And afterwards bubbling up from the button to the root.

>
> And then there's also the cEventCollection-Class inside
> dhRichClient.dll - which allows LateBound Events -
> I just implemented a simple Control-Array-like approach
> using this Event-Conatiner in combination with a group
> of OptionButtons - works nice so far with only a few
> lines of code.
>
> So with a combination of the just mentioned methods, we
> will not have to dive too soon into that advanced Event-
> and State-Model, which we could implement later on -
> and then not based on VBs Std-EventMechanism, but
> using an Interface-based Event-mechanism which should
> work faster.
> But maybe the stuff I just mentioned will already fullfill
> most of the advanced requirements - and "normal"
> Widget-Events are of course also there, directly at
> Control-, respective Widget-level - those who already
> have implemented a VB-UserControl will see the same
> things as they were used to within VB-UserControls,
> only that everything works class-based.

I do not know your implementation. That may be sufficient, of course.
Looking forward for the first code to see myself ;-)

--
Ulrich Korndoerfer

VB tips, helpers, solutions -> http://www.proSource.de/Downloads/