Ok.. here are my comments.. first lines of the diff and I already see something
wrong. Vivia said she didn't
notice it because she didn't think of 'clicking there'. I also just tried it
and I got a bug.
so, first, in gui.tcl, line 1768+ you add items to the menu for each user
allowing it to change the custom DP. That's wrong, because of we
follow the HIG (we don't but still, we try to), those shouldn't be there, at
least, in my logic. The place for doing this is totally in the
properties window, not in the menu. We just recently rewrote all of our menus
in order to make them more user-friendly, and now this makes
them non-user friendly again, so I suggest we remove this.
the bug I got was after clicking there, I got the dpbrowser, and I just
canceled it :
[10:15:58] -----------------------------------------
[10:15:58] >>> GOT TCL/TK ERROR : {{can't read "[EMAIL PROTECTED]": no such
variable}}
>>> Stack:
can't read "[EMAIL PROTECTED]": no such variable
while executing
"set customdp_$email"
(procedure "autoChangeCustomDp" line 7)
invoked from within
"autoChangeCustomDp [EMAIL PROTECTED]"
(menu invoke)
I also just noticed that the DP browser has two small visual issues, first, the
label of our DPs is "my cahced display pictures", it should
be "my display pictures", not "cached" since the cached ones are below (this
might be vivia's mistake), also, i noticed that you didn't put
the filenames of the images anymore. This of course shouldn't apply to the
cached DPs, but for your own, it should, "amsn', "ball",
"shell", "rubberduck", or the filename (without extension) of the files the
user added. The date is not necessary afaik. (only talking
about the top frame)
I also noticed that when we open the DP browser, it doesn't automatically
select the current DP. I think it would be nicer that way.
more code comments :
+ if { [::abook::getContactData $target_user customdp] != "" } {
+ set image_name [::abook::getContactData $target_user
customdp ""]
maybe the first line should also have a "" for default..
+ set selected_path [file join $HOME displaypic cache
[filenoext $image_name].png]
+ set selected_image "[filenoext $selected_path].png"
wtf is the purpose of the second line ? selected_path is already the path with
a .png extension, so why selected_image is being built this
way ? there's no need for it.
$combo list insert end "Select a contact:"
This isn't Cristofaro's code, it was there before, but it's not translated, it
should be...
+ set selection [expr [$combo list index end] - 1]
as stated in my mail below, putting that in accolades would be better
probably...
label $w.dppreviewtxt -text "Preview:"
no translation again.. there are probably a lot like these.. needs to be
checked.
+ if { $image_name == "" } {
+ label $w.dppreview -image displaypicture_std_none
+ } else {
+ label $w.dppreview -image [image create photo
[TmpImgName] -file $selected_path -format cximage]
+ }
I don't understand the reason of using the [TmpImgName] thing.. shouldn't it by
displaypicture_std_$targetuser instead ? there must be a
way. + this seems like a temp image is being created and never deleted, a
memory leak it seems.. can you check this out please ?
ohh, there you go... :
couldn't open "C:/Documents.png": no such file or directory
while executing
"image create photo [TmpImgName] -file $selected_path -format cximage"
(procedure "dpBrowser" line 94)
invoked from within
"dpBrowser $email"
that's probably because of the selected_path used before... for some reason
it's wrong.
humm.. ok, it's not how it's retreive, it's how it's set :
::abook::getContactData [EMAIL PROTECTED] customdp
C:/Documents
- button $w.lowerpane.ok -text "[trans ok]" -command "set_displaypic
\${selected_image};destroy $w"
+ button $w.lowerpane.ok -text "[trans ok]" -command "set_displaypic
\${selected_image} $target_user;destroy $w"
This.. just.. seems wrong! if ${selected_image} is being escaped, then it means
that it's not interpreted at this moment, but will only be
interpreted when the ok button is pressed, but then it's interpreted in the
global namespace and that variable is not set in that
namespace, so it should bug.. weird that it doesn't...
This probably should be done some other way, with [list] it would be better I
suppose.. but then, the $selected_image.. it isn't the real
selected image, it's just the value of $selected_image of the local var of when
you just entered the proc...
humm.. ok, I just saw that you made selected_image into a global variable,
that's even worse, we should totally avoid the use of global
variables. Also, I noticed that you set that var if target_user != self, but if
it's self, then what happens ? the var will never be
initialized, so we'll get a 'variable not found' error. I didn't test but it
seems logical that if you open the change DP browser for self
once and you click ok without selecting any DP, then selected_image will never
be set.
So either set it before, or.. try to find a way to make that work without the
user of a global variable (if possible and easy).
+ set image_name [image create photo [TmpImgName] -file $selected_path
-format cximage]
+ $w.dppreview configure -image $image_name
again a memleak whenever someone selects a DP (in updateDPBrowserSelection) :
+proc autoChangeCustomDp { email } {
+proc autoRemoveCustomDp { email } {
Since we'll remove the menu items from the CW, then there's no need for these
functions, which I still don't understand what there purpose
is...
Ahh, before I forget, I also noticed that, with this new dpbrowser, we cant'
access DPs from users who aren't in our list anymore, so if
you have a cahced image and you deleted the user, you need to add him again to
be able to access his cached dp... maybe adding a 'others'
in the menu would be good.. but added only if there *are* cached DPs from users
not in our list anymore.
oh well.. this is it for gui.tcl.. I also took a quick look at skins.tcl and it
seemed ok..
now dpbrowser.tcl remains and abook.tcl and automsg.tcl but I have to get back
to work... I'll conitnue the review of the code soon,
I hope you'll take my comments into consideration and provide us soon with an
additional patch or actually.. you could do it yourself.. I
suggest you read the svnbook to learn a bit more about svn, and then do the
fixes yourself and commit them. yes, indeed, welcome to the
team, you are now an amsnian :)
So, basic rule (for now) is to make sure you update before commiting, and make
sure to save your files before updating, and to never save
after an update (unless you revert to the on disc version, otherwise you might
overwrite a previous commit).
when you commit, you'll need to enter your sourceforge username and password
and you're done!.
I just want to say that I'm pretty impressed by your work. I know that I gave a
lot of comments, and I always do that, but this doesn't
mean that your code is bad, on the contrary, it's good, which is why you joined
the team (I would never have added someone after only one
patch, but your was enough to convince me).
I think the only thing that your work lacked, which caused this big review is
our lack of contribution. You made decisions, you did some
stuff without consulting us and we didn't follow up with you very much, so the
fault is shared on both sides,, I hope next time we'll be
able to share more and don't hesitate to ask questions and ask for our
experience.
Also, a code review is usually necessary because noone is able to view his own
mistakes.
Thanks again and welcome to the team!
KaKaRoTo
On Mon, Jan 08, 2007 at 10:13:37AM -0500, Youness Alaoui wrote:
> Hi Vivia, Cristofaro, everyone else...
> First, Cristofaro, sorry for not committing the patch earlier, I started
> looking at it and didn't have time to
> finish reviewing the code. I just starting looking at it again when I saw
> vivia committed it already. So again,
> sorry for the slow response from my side.
> Vivia, you screwed up big time! As you should know, we must never commit any
> patch to SVN without prior checking
> and reviewing the code. You just told me that you didn't have time to review
> the code, I understand, and you
> didn't want the thread to go unnoticed, I understand, but you know me, I
> rarely forget about some thread and I
> was surely going to do this (especially since Cristofaro is in my MSN list,
> so everytime I look at my CL I
> remember the patch). Also, you should have just answered to say "hey, don't
> forget about this patch.." or
> something.
> I will know review all that code, I don't want any more commits without
> knowing what the code contains. It's not
> because I don't trust the code, it's just that whenever there is new code,
> it's better to review it to make sure
> it's good code, no hacky code, nothing that gets forgotten.. as you should
> know, there were many commits that
> were done with some small typos, lower/upper case, or a == 0 instead of != 0,
> etc.. and even if the code works,
> the bug may not arise because you can't test all cases, and the best way to
> catch the bugs, is as early as
> possible, which means, before the commit (or right after the commit when
> looking at the amsn-commits ML). In
> this case, I'd like to review the code to make sure there's nothing that was
> forgotten.
>
> Cristofaro is also new to amsn and to Tcl, so there are many things he
> doesn't know because of experience, for
> example, a bind $w <1> "set_display_pic $filename" is something that might
> work and he may not see the problem
> with it, but actually, it's a problem in case there's a space, because Tcl
> will evaluate this and make spaces in
> $filename as multiple arguments. the best way to fix it is doing bind $w <1>
> [list set_display_pic $filename].
> Those are tricks we got to know by experience and it took a lot of time to
> figure those out.
> Same for if we see [expr $x * 2] that's wrong, it should be [expr {$x *2}]..
> it's the same thing, but the second
> form will avoid the Tcl core to go through some processing that will make the
> expr evaluate with an increased
> performance.. etc..
>
> I'll answer back again once I review the code.. and I may hopefully be able
> to commit fixes to it too.
>
> KKRT
>
>
> On Mon, Jan 08, 2007 at 04:41:06PM +0200, Vivia Nikolaidou wrote:
> >
> > Thanx, committed :)
> >
> > On Mon, 8 Jan 2007, Cristofaro Del Prete wrote:
> >
> > > Vivia Nikolaidou ha scritto:
> > > > It's OK, but since I committed your previous patch already, can you
> > > > diff
> > > > against current SVN and resend it? :)
> > >
> > > I checked out amsn-devel before of amsn-commits... sorry
> > > Patch attached to message.
> > >
> >
> > -------------------------------------------------------------------------
> > Take Surveys. Earn Cash. Influence the Future of IT
> > Join SourceForge.net's Techsay panel and you'll get the chance to share your
> > opinions on IT & business topics through brief surveys - and earn cash
> > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> > _______________________________________________
> > Amsn-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/amsn-devel
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> Amsn-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/amsn-devel
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Amsn-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/amsn-devel