[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-panel-devel
Subject:    making changes to DataEngine
From:       "Aaron J. Seigo" <aseigo () kde ! org>
Date:       2011-11-30 8:32:08
Message-ID: 2879444.WVkVexZJlN () freedom
[Download RAW message or body]

[Attachment #2 (multipart/signed)]

[Attachment #4 (multipart/alternative)]


hi :)

the code in DataEngine (and related classes) is very unforgiving. it must 
absolutely and at all times follow to the letter the contracts it sets forth 
as to things like source availability, calls to dataUpdated, etc.

every time one of these things is wrong in the code we get bugs in applets and 
dataengines as a result. trust me, i managed to do that several times while 
writing that code in the first place. ;) in fact, just last week i fixed 
another interesting edge case.

what i'm trying to say is that the code there is not particularly robust to 
changes unless there is a relatively deep understanding of what's going on in 
there.

the result is that within the last couple of weeks two people have fixed the 
same bug in the same incorrect manner. i didn't notice the original change as 
it happened while i was heading out on vacation .. noticed the issue while 
reading through the code and 'fixed' it, reintroducing the original bug, which 
another person then fixed back to exactly the same original problem.

so ... in future, when working on DataEngine code please consider the 
following:

* even if it is a one-liner, run it by me. i know that code better than anyone 
and will be able to point out problems that are not perhaps immediately 
apparent.

* if you do make a change in the code to address a non-obvious situation, 
please leave a comment in the code noting why that change was made.

thanks ...

-- 
Aaron J. Seigo
humru othro a kohnu se
GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA  EE75 D6B7 2EB1 A7F1 DB43

KDE core developer sponsored by Qt Development Frameworks

[Attachment #7 (unknown)]

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" \
"http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" \
content="1" /><style type="text/css"> p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'Bitstream Vera Sans'; font-size:12pt; \
font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; \
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; \
-qt-user-state:0;">hi :)</p> <p style="-qt-paragraph-type:empty; margin-top:0px; \
margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; \
text-indent:0px; ">&nbsp;</p> <p style=" margin-top:0px; margin-bottom:0px; \
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; \
-qt-user-state:0;">the code in DataEngine (and related classes) is very unforgiving. \
it must absolutely and at all times follow to the letter the contracts it sets forth \
as to things like source availability, calls to dataUpdated, etc.</p> <p \
style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; \
margin-right:0px; -qt-block-indent:0; text-indent:0px; ">&nbsp;</p> <p style=" \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;">every time one of these \
things is wrong in the code we get bugs in applets and dataengines as a result. trust \
me, i managed to do that several times while writing that code in the first place. ;) \
in fact, just last week i fixed another interesting edge case.</p> <p \
style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; \
margin-right:0px; -qt-block-indent:0; text-indent:0px; ">&nbsp;</p> <p style=" \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;">what i'm trying to say is \
that the code there is not particularly robust to changes unless there is a \
relatively deep understanding of what's going on in there.</p> <p \
style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; \
margin-right:0px; -qt-block-indent:0; text-indent:0px; ">&nbsp;</p> <p style=" \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;">the result is that within the \
last couple of weeks two people have fixed the same bug in the same incorrect manner. \
i didn't notice the original change as it happened while i was heading out on \
vacation .. noticed the issue while reading through the code and 'fixed' it, \
reintroducing the original bug, which another person then fixed back to exactly the \
same original problem.</p> <p style="-qt-paragraph-type:empty; margin-top:0px; \
margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; \
text-indent:0px; ">&nbsp;</p> <p style=" margin-top:0px; margin-bottom:0px; \
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; \
-qt-user-state:0;">so ... in future, when working on DataEngine code please consider \
the following:</p> <p style="-qt-paragraph-type:empty; margin-top:0px; \
margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; \
text-indent:0px; ">&nbsp;</p> <p style=" margin-top:0px; margin-bottom:0px; \
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; \
-qt-user-state:0;">* even if it is a one-liner, run it by me. i know that code better \
than anyone and will be able to point out problems that are not perhaps immediately \
apparent.</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; \
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; ">&nbsp;</p> \
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;">* if you do make a change in \
the code to address a non-obvious situation, please leave a comment in the code \
noting why that change was made.</p> <p style="-qt-paragraph-type:empty; \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; ">&nbsp;</p> <p style=" margin-top:0px; \
margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; \
text-indent:0px; -qt-user-state:0;">thanks ...</p> <p \
style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; \
margin-right:0px; -qt-block-indent:0; text-indent:0px; ">&nbsp;</p> <p style=" \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;">-- </p> <p style=" \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Aaron J. Seigo</p> <p style=" \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;">humru othro a kohnu se</p> <p \
style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;">GPG Fingerprint: 8B8B 2209 \
0C6F 7C47 B1EA  EE75 D6B7 2EB1 A7F1 DB43</p> <p style="-qt-paragraph-type:empty; \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; ">&nbsp;</p> <p style=" margin-top:0px; \
margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; \
text-indent:0px; -qt-user-state:0;">KDE core developer sponsored by Qt Development \
Frameworks</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; \
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; \
">&nbsp;</p></body></html>


["signature.asc" (application/pgp-signature)]

_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic