We have good news for anyone using the experimental polymorphism framework
from within SproutCore. You’ll be glad to know that it has now made its way
into the official datastore framework as part of SC.Record. If you have been
using this framework, you’ll be even more glad to learn that polymorphic
records are now significantly faster and more memory efficient. As well,
this change includes a critical bug fix that resulted in polymorphic records
getting mismatched when their id was changed.
For those interested in what this change means, here’s how it works. First,
if you’re not familiar with polymorphism, it’s similar to inheritance,
but differs in that polymorphic subclasses share a common “identity”.
Here’s what that means with respect to the data model. In typical
inheritance, the subclasses inherit the traits (attributes) of their
superclass, but they can’t s... (more)
“From where we sit now, the code is shaping up quite nicely. Soon enough,
if you have a SproutCore app, you’ll be able to just drop an editor right
into your app. As of today, anyone with a website can grab a copy of Bespin
and include the editor component very simply in their pages. We figure that
we’ve got another month of work to do before we’re ready to update
bespin.mozilla.com. We have a whole bunch of features to port over from the
old code and we need to make good on another big part of the Reboot promise:
opening Bespin up for plugins. It’s been hard even for Bespin core... (more)
One of the coolest parts of the new SproutCore View layer is its ability to
use aspect-based programming to add behaviors to views.
Aspect-based programming is built on the premise that often objects that
don’t follow from the same class hierarchy may in fact need similar
This is especially true in GUI programming when designers come to you and say
something like “I came up with this new widget - it looks kind of like a
progress bar but it acts like a button when you click on it”.
In SproutCore, you capture these common behaviors in a “mixin”. A mixin
is just a colle... (more)
When I first put together SproutCore, I created a purple-colored theme to
style buttons, checkboxes, and so on. The idea was to create a placeholder
theme just until we could get something real done.
I’m happy to say that SproutCore 1.0 will retire the purple theme in favor
of a new theme called Ace. Ace was initially contributed to SproutCore by
Cocoia. It is now included using the new theme support.
If you don’t want to use Ace, that’s OK. You can write a theme of your
own. If you do like Ace but you’d like to refine it a bit, you can do
that too. The entire theme, inclu... (more)
CSS and HTML Color Picker for Mac OS X : Hat tip: Daring Fireball