[no subject]
The gtk docs - without any need - do so nowhere :(
That is a sure way to loose the battle against QT.
Yes, still i will continue to work with gtk. Here is what i wrote on depikt.net:
"""
With much more time i'd very like to make a simplified python-connected gtk,
dismissing the outdated painting methods of gdk (since some years obsoleted by
cairo inside gdk), some outdated features in imitation of X11 (as ... pixmaps),
the styles sharing, properties at all, and would let it work with python classes
instead of glib. But that will probably stay one of my dream projects. Unfortunately i
am no wizard at coding, not at all.
Some code of depikt, providing Python support for about 15 widgets, gdk.Pixbuf
and something else is on sourceforge.
A note on properties: They describe side-effects of attribute assignment. And side-
effects are bad. Functional programming languages advertise with the impossibility
of side-effects of their functions and nobody is vetoing. While nothing is wrong with
only public attributes and methods as in Python a class should nevertheless be
usable as a black box, its programmer should not require reading its code by the
class's user (this is no less true, if this user is she himself).
Best usable are those classes with attributes independent of each other. This is
common sense for databases, where normalization is widely accepted as
desirable. But so far i've never met discussions on "orthogonalization" of attributes
in OOP ....
Sometimes properties are useful, it is correct to have them in a programming
language. But they should be the exception. And assignment to a property should
be differenciated from assignment to an attribute in the calling code.
With GUI-builders it is very useful, when modifications of attributes or variables can
be made to events. The callback connected to the corresponding signal makes the
attribute to a property then. Providing a general mechanism in the GUI-builder for
doing so with any kind of variable or attribute is fine - but making all attributes born
properties for that is bad and slothful design.
"""
(Yes - i am megalomaniac enough to state, that the method/attribute unification
in SmallTallk - and the recommended use in ObjectiveC - is the wrong track).
That "slothful" is too hard probably. Methods are easier to interface with objects
of other languages than attributes - that might be a reasonable case for that
preference of properties in gtk.
At last a word to the "Read the sources" garbage read on this list too. It is
in no way specific to gtk.
We all know, that reading code is more difficult than writing code. An author
of software requesting "Read the sources" does wrong thus and
damages his work: After all that means, that the asking part would
do better writing what is in question himself (as i do with my depikt).
Thus "Read the sources" must be combined with a hint to the focal
files and object names of the matter in question, otherwise it is mere arrogance
helping nobody (in the full sense of the word arrogance, stated in full conscience
of the difference between arrogance and self-confidence) helping nobody.
And now: Good luck and success, viciousdog
--Alt-Boundary-25596.16647015
Content-type: text/html; charset=US-ASCII
Content-transfer-encoding: 7BIT
Content-description: Mail message body
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
<title></title>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
<meta http-equiv="Content-Style-Type" content="text/css"/>
</head>
<body>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">Hello,</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">this will be a long text. Parts of it have been circulated in my brain since</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">many months - i must do this. Please keep in mind, that i do not want</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">to offend anyone, my username "viciousdog" on sourceforge is nothing else</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">than a warning.</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">python/gtk/sqlite has been chosen as the ("virtualized") poor man's computer </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">by OLPC. I learned that after i had chosen this platform myself. </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">Continuing to read this, some of you might want to respond: "Then write
documentation yourself !!" - but i cannot. Living in a country, where a labour
politician has reintroduced forced labor recently i really have no time for that.</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">I'd really like to write 10-20 pages about rc syntax, but what will come</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">below must be enough for the moment. </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">I will continue to write for this platform and make improvals of it for my</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">own use. Working on my pygtk alternative depikt i learned that the promise</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">of easy interfacing with other languages (than C) is not empty. Then there</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">is gdk.Pixbuf and the integration of the well-designed pango and cairo. The</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">latter must have been a bit painful for the authors of the </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">gimp-tk - many thanks for that ! And thanks for the introduction to</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">widget construction.</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">But that is all, what is really good in gtk.</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">Beginning my work on that software, which helped me to survive as an</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">intermediary internet dealer and beginning to use gtk i searched border-width.</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">From the promise of high-quality-surfaces i was sure to find all what </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">tcl's TK - designated as "poor" by many programmers - has too.</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">You know, what followed. I learned that border-width means margin-width</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">with gtk, but that was of course no reason to continue searching. The </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">inevitable result: Hours of senseless pain. I am probaly fairly dumb </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">(i've met really better brains in my life playing bridge for example) - </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">on the other hand i am someone capable of learning Python's infamous </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">C-.API and to make depikt.</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">Yes, you can make high-quality-surfaces with gtk. You can determine every</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">pixel of your widget, if you want. But the way thereto is nearly not documented</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">at all. And the standard equipment is leading to surfaces as gnumeric has - </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">reminding me at GEM on the Atari ST.</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">During 3 years the documentation of gtk and gtk itself has never ceased to cause</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">this kind of pain. It is my fourth GUI-builder - and what is in the tutorial is 100%</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">useless in such a situation. No word about the style sharing, no word about the</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">needed full path to a widget's name in rc files, (probably) no word about</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">property-notify events, no word about what "Style properties" in the</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">references mean ... These thousands of pages have caused a lot of work on</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">your side - with about 100 good pages they were as useful as they could and</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">should be as the result of so much work</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">Only last week i learned that the "GtkEntry::cursor-color" in</span></font></div>
<div align="left"><font face="Courier New" size="2"><span style=" font-size:10pt; background:#e8f2fe"><br />
</span></font></div>
<div align="left"><font face="Courier New" size="2"><span style=" font-size:10pt; background:#e8f2fe">GtkEntry::cursor-color = "DarkGrey"</span></font></div>
<div align="left"><font face="Courier New" size="2"><span style=" font-size:10pt; background:#e8f2fe"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">is necessary - or is it not ? Again in a session fighting rc syntax with pain.</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">No chance at all to get to fluid writing with this beasty material. That comes</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">absolutely unexpected, after all we will link the style, where it is in, to an entry</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">(and we absolutely should, when we want to produce well maintainable </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">software) thus it looks redundant on the first view.</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">What i had to learn in November under pains also is, that you have to</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">write the full path to the widget down in lines like:</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Courier New" size="2"><span style=" font-size:10pt; background:#e8f2fe">widget "OKambaDialog.outer_bd.inner_bd" style
"st_dialog_inset"</span></font></div>
<div align="left"><font face="Courier New" size="2"><span style=" font-size:10pt; background:#e8f2fe"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">"OKambaDialog" is necessary here - again deviating from what </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">contemporary programmers know from CSS's id versus class.</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">And if someone is prepared to this difference to class, he would </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">probably expect this whole path with "class", not with "widget".</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">And i had found it somewhere on library.gnome.org - yes it is documented.</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">But not at the prominent place, where it has to. This must be in one </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">of the first  paragraphs on .rc files everywhere.</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">gtk authors will have had reasons for this ideosyncratic behavior of "widget". </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">From the first  look it appears as nothing as another weakness - and </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">that is, what i want to state as the second main point here: The documentation</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">must be more honest to be well usable. These days i begin to make</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">the User Manual for my commercial OKamba. I will cut off any try of</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">pseudo-objectivity there and use a lot of "i"s (hopefully not too penetrant) </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">using it for advertisement with the same move. But i will speak of more than one</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">weakness of OKamba there - and prevent useless searching of the users so.</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">The gtk docs - without any need - do so nowhere :( </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">That is a sure way to loose the battle against QT.</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">Yes, still i will continue to work with gtk. Here is what i wrote on depikt.net:</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">"""</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">With much more time i'd very like to make a simplified python-connected gtk,
dismissing the outdated painting methods of gdk (since some years obsoleted by
cairo inside gdk), some outdated features in imitation of X11 (as ... pixmaps), </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">the styles sharing, properties at all, and would let it work with python classes
instead of glib. But that will probably stay one of my dream projects. Unfortunately i
am no wizard at coding, not at all.</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">Some code of depikt, providing Python support for about 15 widgets, gdk.Pixbuf
and something else is on sourceforge.</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">A note on properties: They describe side-effects of attribute assignment. And side-effects are bad. Functional programming languages advertise with the impossibility
of side-effects of their functions and nobody is vetoing. While nothing is wrong with
only public attributes and methods as in Python a class should nevertheless be
usable as a black box, its programmer should not require reading its code by the
class's user (this is no less true, if this user is she himself).</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">Best usable are those classes with attributes independent of each other. This is
common sense for databases, where normalization is widely accepted as
desirable. But so far i've never met discussions on "orthogonalization" of attributes
in OOP ....</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">Sometimes properties are useful, it is correct to have them in a programming
language. But they should be the exception. And assignment to a property should
be differenciated from assignment to an attribute in the calling code.</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">With GUI-builders it is very useful, when modifications of attributes or variables can
be made to events. The callback connected to the corresponding signal makes the
attribute to a property then. Providing a general mechanism in the GUI-builder for
doing so with any kind of variable or attribute is fine - but making all attributes born
properties for that is bad and slothful design. </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">"""</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">(Yes - i am megalomaniac enough to state, that the method/attribute unification</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">in SmallTallk - and the recommended use in ObjectiveC - is the wrong track). </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">That "slothful" is too hard probably. Methods are easier to interface with objects </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">of other languages than attributes - that might be a reasonable case for that</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">preference of properties in gtk.</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">At last a word to the "Read the sources" garbage read on this list too. It is </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">in no way specific to gtk.</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">We all know, that reading code is more difficult than writing code. An author</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">of software requesting "Read the sources" does wrong thus and</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">damages his work: After all that means, that the asking part would</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">do better writing what is in question himself (as i do with my depikt).</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">Thus "Read the sources" must be combined with a hint to the focal</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">files and object names of the matter in question, otherwise it is mere arrogance</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">helping nobody (in the full sense of the word arrogance, stated in full conscience </span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">of the difference between arrogance and self-confidence) helping nobody.</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt">And now: Good luck and success, viciousdog</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"><font face="Arial" size="2"><span style=" font-size:10pt"><br />
</span></font></div>
<div align="left"> </div>
</body>
</html>
--Alt-Boundary-25596.16647015--
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]