[sugar] Mathematical Diversions 2

Benjamin M. Schwartz bmschwar
Tue Oct 7 11:55:00 EDT 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Tomeu Vizoso wrote:
| On Sun, Oct 5, 2008 at 3:51 AM, Benjamin M. Schwartz
| <bmschwar at fas.harvard.edu> wrote:
|> I have written up an algorithm for quasi-optimal placement of items in the
|> Mesh View.
...
|> I am not sure whether this algorithm is of use for Sugar.
|
| To determine so, I'd make some questions:
|
| - how it compares with the existing implementation functionality-wise?

New features:
- - Allows each icon to specify a preferred location, and attempts to place
each icon as near as possible to its preferred location (for consistent
locations between laptops and over time).

- - (optionally) Dynamically shrinks icons when there is no other way to
prevent overlap*

- - (therefore) Always finds a non-overlapping arrangement*

Lost features:
- - There are valid arrangements that this algorithm cannot produce.  For a
dense mesh view, its appearance may be somewhat different from the current
algorithms.  There are a number of tunable parameters and design choices
that affect the appearance, but no tuning has been done.

- - All icons are treated as circles, though it might be possible to have
circles coexist with rectangles and even ellipses in the future.

| - and performance-wise?
Computing the positions and shrinkage for 50 shared activity rings, all
large and overlapping, takes less than a second on my Thinkpad.  It would
probably take several seconds on an XO, but 50 shared activities is a very
large number.  I have made no attempt to increase speed, so some
improvements may be possible.  We can run this algorithm after the screen
has been preliminarily updated to reflect a change, so that the
computation time does not introduce any latency.

| - which dependencies eliminates or brings? how heavy are them?

It depends on the CVXOPT package, which weighs a bit over 2 MB.  That's
much bigger than I expected, and now I'm curious why it's so large.

- --Ben

*: These features are in new code, not yet posted.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkjrhlQACgkQUJT6e6HFtqQawQCfUuhxcCiiwFdvZ3zBu93zM803
GuEAoJppKgxAq51t/vX7+JeHx+h/QrQf
=CPGq
-----END PGP SIGNATURE-----



More information about the Sugar-devel mailing list