[Cuis] Time to break Morphic?

Juan Vuletich juan at jvuletich.org
Fri May 18 20:34:20 CDT 2012


Hi Phil,

Phil (list) wrote:
> Juan,
>
> On May 17, 2012, at 9:25 PM, Juan Vuletich wrote:
>
>   
>> Ok. It is available now. I just created a GitHub repository for Cuis, at https://github.com/jvuletich/Cuis <https://github.com/jvuletich/Cuis/issues> . At https://github.com/jvuletich/Cuis/tree/master/Cuis4WithLatestUpdates you have an image that already includes the recommended updates, up to 1288. At https://github.com/jvuletich/Cuis/tree/master/ExperimentalUpdates you have the local coordinate stuff. Please install the change sets in numerical order. Hopefully they will make sense to you. I'm preparing a readme.txt with some explanations now. Maybe it is there too by the time you get this message.
>>
>> If you can help with this you are absolutely welcome!
>>
>> Cheers,
>> Juan Vuletich
>>     
>
>
> I've had a chance to take a quick look at the code and your notes and had a few quick questions/comments:
>
> 1) If I'm understanding the main work to be done for local coords, it looks like there are ~160 methods to be modified (senders of morphPosition, morphPosition:, bounds, bounds:)  Does that sound about right or am I missing part of the effort?
>   

Essentially you're right, but see response to 2). In addition to that, 
we need to adjust coordinates appropriately when changing the owner of a 
morph, and stuff like that.

> 2) I'm not clear on your point re: 'the programmer needs to know who the owner is'... as long as the morph knows what morph it's contained in and can cascade call up the morph containment hierarchy to get an absolute position in owner, why does the programmer need to know or care?  I get why whoever creates the Morph needs to know the owner (i.e. to set it) but your statement seemed more general than that.
>   

I apologize for not being clearer in the comments. They were meant just 
for myself, not to forget something, rather than explanations. The issue 
here is that I found code that did the following:
1) create some morph
2) position it somewhere on the Display (global coordinates)
3) set the owner

This is completely broken if coordinates are local. When we set position 
we need to know relative to whom they are. In some places I changed it 
to set first the owner, then the position.

> 3) Also, I assume that there's a significance to your different flags such as #jmvVer2, #revisar etc... and I think I get what #revisarM3 is for but what about the others?
>
>   

No real logic there :( . All I can say for sure is what I wrote at 
https://github.com/jvuletich/Cuis/blob/master/ExperimentalUpdates/readme.txt

> 4) No problem re: comments in Spanish... Google translate makes that a non-issue :-)
>
>   

Good to know!

> I'm sure you've got other priorities than getting the local coord stuff done right now, but to make sure we're not duplicating effort would it make sense to have me start with classes starting with A and work down and you take the Z's  and work up where possible? (I haven't even begun to think about any interdependencies that might cause problems with that approach... it's just a top of head idea)
>
>   

Well, I usually work with senders / implementors, and when I find some 
code pattern I need to fix, I try to understand it well enough, and then 
apply the ideas anywhere they are appropriate. If you limit yourself 
arbitrarily (i.e. alphabetically), code that should be fixed the same 
way will end being inconsistent... I suggest just start anywhere you 
feel confident about what you're doing. If you'll be working on 
something for a longer time (maybe a week or more), just send a note, to 
avoid working on the same stuff. These days I'm not really working on 
this, but if I do I'll warn you, and send any code asap.

> Thanks,
> Phil
>   

Thank you for doing this! Chances are we'll get it done faster than any 
of us could do it alone.

Cheers,
Juan Vuletich




More information about the Cuis mailing list