SYSTEM WARNING: Creating default object from empty value

SYSTEM WARNING: Creating default object from empty value

SYSTEM WARNING: Creating default object from empty value

SYSTEM WARNING: Creating default object from empty value

SYSTEM WARNING: Creating default object from empty value

Mantis - Squeak
Viewing Issue Advanced Details
6593 Morphic major N/A 08-06-07 18:49 10-09-07 02:07
wiz  
 
normal  
new  
open  
none    
none  
0006593: Whitler's Mother (Morphic ) . A parent for reports aimed at whitling the morphic package down to size
The Morphic package weighs in at over a megabyte
Morphic Extras and Etoys packages are also unwieldly .

The three packages interdependence on each other also points to a large design and coding debt.

This is a Mother issue for reports that help solve portions of that problem.
My proposed stratagy for tackling this problem is incremental.

There need to be probes to
1) uncover the dependencies.
2) determine the true centers of pieces within morphic

There need to be results of those probes to generate a list of needed
repairs.

And then the repairs need to be made one by one and tests generated to guide them.

With an emphasis on chipping away at it, piece by piece.
And an emphasis on eventual elegant packaging. With a high coherence amoung methods within a package and high decoupling amoung pieces in different packages.


Morphic consists in my mind of highly composable tools that can be easily manipulated with a informative and responsive gui. And which requires of the user a minamal use of coding to achieve their purpose.

The code for Morphic reflects its development. Many cooks. Little though given to refactoring what is already there.

The start for fixing things is to whittle away at the edges.

Identify leaves (classes that don't have subclasses) and package them sperately. Letting the core become smaller.

Identify major dependencies. The Morphs behave differently depending on how they tilt.
There are polygons el al
Rectangles, ellipses and other flex morphs
TTfonts and other that depend on ar's MatrixTransforms.

And worlds and hands which don't really tilt at all.

There are also major pieces that come from different branches and don't really integrate well. (smalland, squeakland, etc.)

I am writing this at a beginning step the details will become clearer an more concrete as things proceed. Part of the process is learning more about the problem.

So let us begin...

Yours in curiosity and service, -Jerome Peace
parent of 0006603new  GradientFillMorph must be put to rest 
parent of 0006566closed  [Fix] [Test] Old PlayWithMe1 class needs to be removed 
parent of 0006568@60@  [Fix][Test] Tweak of PolygonMorph>>RemoveCacheState to remove obsolete code. 
has duplicate 0006518closed  [RFE] Morphic packages are too big and not properly factored. Repackaging needed. 
child of 0006567new  Mother of Morphic Cleanup Tweak 
Not all the children of this issue are yet resolved or closed.

Notes
(0010962)
wiz   
08-06-07 19:26   
Candidates for projects to tackle:

1) Leftover Fabrik
Dan's component model is a the core of a lot of classes. Yet many of the original fabric classes have fallen into disuse and sit unreference in the image. Some are self reference only. Morphic can be made smaller by identifing and making a separate package of the unused pieces of fabrik.

2) Morphic>>position is entangled and intertwined with the needs of Etoys. Understanding and a careful think about refactoring to decouple and simplify position is in order.

3) Preferences has become an entangled dumping ground for everything.
Understanding and a careful think about refactoring to decouple and simplify Understanding and a careful think about refactoring to decouple and simplify is in order.

4) MatrixTransformationMorph and its dependents. (TTFonts)

5) Polygons and descendants and dependants.

6) TransformationMorphs and its decendants.
(0010979)
edgardec   
08-11-07 21:50   
Fabrik
Can be unloaded, as SqueakLight don't have and don't miss

I wish unload Nebraska amd EToys from a long time, buddy.
Think I know how if you are with me

For Morphic, I have a start of partition , not real packages now, but lets have small pieces for later reshaping and refactoring

For the rest , I trust you and Juan
(0011022)
wiz   
08-14-07 22:35   
Hi Edgar,

Thanks for chiming in.

The idea of this report is to be a overview and a "parent" for individual topics that whitle down morphic.

And I think tackling the simple and working up to the complex is the way to go.

I am meaning to get around to individual reports. (Or I could use help if you are so inclined.) Then link then to this report. The idea is from an individual item you can come back here and see the bigger picture.

Fabrik for me is more complicated and will take some understanding before I know what pieces want to go or stay. The alternative to throwing it out is to revive it. Though I suspect that is not in the cards.

I also suspect it Fabrik and Connectors deserve to be thought about at the same time.

There are some integration projects in the wings. Integrating pieces and decoupling things is the slow work to get a good result. Understanding whats going on has first priority.

Whitling morph is something I expect to happen as a side result of other work.

Yours in curiosity and service, --Jerome Peace