Welcome!

Charles Jolley

Subscribe to Charles Jolley: eMailAlertsEmail Alerts
Get Charles Jolley via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Top Stories by Charles Jolley

One of the new features in SproutCore v1.10.0 was a PhantomJS unit test runner. It allowed us to automate SproutCore’s own framework unit tests, giving us awesome continuous integration support right in GitHub via the great Travis-CI service. If you use CoreTest, SproutCore’s built-in (QUnit-like) unit test framework, then you can also use this to run your own tests from the command line – meaning you can automate it, and hook it up to your own CI scaffolding. It’s impossible to overstate the impact that continuous, automatic unit testing has on the quality and stability of your codebase. Prerequistites You will need to have PhantomJS installed before using the test runner. Full instructions for this can be found here. You will also need to track down SproutCore’s installed location in order to run its test runner script. If you’ve got a copy checked out into your ... (more)

Introducing Juniper: SproutCore app + annotated source

It’s been noted often that there’s a serious lack of production-level SproutCore apps with readable source code. Developers often learn best by poking at something and seeing how it works, but until now there hasn’t been anywhere to go. With an eye towards improving that situation, I’m excited to announce Juniper, a SproutCore app and annotated codebase. Check it out: http://juniper.dcporter.net/ I wrote a fuller introduction here, and the source code itself is here. If you’re new to SproutCore, or wondering if it’s right for your project, give it a poke! If you have any question... (more)

Aspect-Oriented Programming and You

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 behaviors. 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)

SproutCore Website Built With SproutCore

The coding portion of SproutCore 1.0 is nearly complete, so it’s time to start work on some of the non-code parts of the SproutCore project. Today I just push a brand new version of the SproutCore website.  The design is very simple, but unifies the wiki, blog, and main site so that they finally feel like they belong together. We still have a lot more to do with the site before 1.0.  (More on that later)  But, the really interesting thing about the site is how it was built. First, the new website uses SproutCore’s build tools.  Over the last few years these tools have been honed... (more)

Connecting Views to Model Object « Keeping Sanity One Smelting Accident at a Time

Connecting Views to Model Object « Keeping Sanity One Smelting Accident at a Time: The network of SproutCore focused blogs is growing.  For a while we’ve had It’s Got What Plants Crave, which has some great tutorials.  And of course Geoffrey and his excellent Screencasts (now hosted on the SproutCore site). Now another SproutCore developer has started blogging about some of the key points he is learning along the way while he works on a new app.  This post covers bindings in some detail.  Give it a look! ... (more)