Our blog

A Proposal for Webkit Programmers

Sandvox is built using some cool technologies from Apple, the most obvious one being WebKit. It not only renders Web content but provides the basic framework that allows a user to edit text directly on the page. We think WebKit is great, but we've also been finding some bugs in Apple's code that we have to work around.

Unlike most other toolkits from Apple, WebKit is open-source, which means that any engineer can fix the bugs, not just folks at Apple. And, in an ideal world, we would have a staff of dedicated programmers assigned to fixing the WebKit bugs that we need fixed to make Sandvox work as smoothly as possible.

But we are a small company, and programming the depths of WebKit is not our forte.  So we came up with an idea: offer a tangible "thank you" to whomever can fix the bugs we need fixed. A win-win situation: not only will Sandvox benefit, but so will any app that uses WebKit.

So here is our offer: for each bug from our list (below) that is fixed (via a patch attached to the report in the WebKit Bugzilla), to our satisfaction, we will pay a "fix thank you" of US$100. If and when a submitted patch is committed to the official WebKit repository, we will pay that person a "committed patch thank you" of US$150.

These are the bugs that we need fixed, and that are eligible for the "thank you":

3579 In-place style-switching is leaving junk behind, messing up styles

3983 outline:auto improperly puts outline around contained elements, not the actual div

4003 contentEditable div cannot be edited if it starts out with empty or <p/>

4726 Drop of multiple non-image file URLs only yields one item

4879 Included Javascript included in a page loaded with [WebFrame loadHTMLString:] is ignored

5354 Corner case where you can select outside the bounds of an editable block.

For developers interested in taking any of these on, these are some useful resources: theWebKit Home Page, OpenDarwin Bugzilla, the Surfin' Safari Blog, and the public IRC channel #webkit on irc.freenode.net.

Now the fine print: Apple employees and contractors are not eligible for the monetary "thank you." (We don't want to have a conflict of interest with Apple's scheduling.) Work performed is licensed under the same license as the rest of WebKit. In the event multiple fixes are submitted, we will pay a "fix thank you" to the creator of the first submission that meets our criteria. We will pay a "committed patch thank you" to the creator of whichever patch is committed to the repository; this may not necessarily be the same person who submitted the first patch that met our criteria. After the programmer submits a patch to Bugzilla and/or a patch has been committed to the repository, and it meets our criteria, he/she mustsubmit an invoice for their work to Karelia Software. (We prefer Paypal for non-US payments.) Karelia reserves the right to withdraw or modify this offer, with respect to any or all bugs noted above, at any time prior to submission of a patch that meets our criteria.

Update: I've pulled 3985 from the original list because it's just an assertion failure, not really a bug that affected Sandvox.

Update 2: So far so good, there has been some progress on a good number of the bugs listed. A couple are close to being resolved, and one is off the table because it turns out that it's a Apple documentation issue, not a code bug that needs fixing. [Also, Merci to the prolific comments, I have fixed the atroseous speling eror in this entry.]

Update 3: Operation successful!  It took a while, but they are pretty much all solved.

Beta Program Update

We've been beta-testing Sandvox for several weeks now with a small group of testers. We plan on opening up the beta program later to the many who have signed up, but the reality is that it's much more overhead to manage hundreds of beta testers than a few dozen, and that overhead would result in delaying the product, rather than bringing it on sooner.

In the meantime, we have fixed some great bugs (we've focused on the crashers first, of course) and solved some usability problems.  We have solved some real "doozies." One thing we are discovering is that Apple's Core Data technology that we are using, although extremely powerful, is also extremely delicate. We have to go over a lot of pieces of the program with a fine-tooth comb to deal with these issues, so that Sandvox is rock-solid, not delicate!

We've also made great strides in integrating the payment/licensing section of the program, and the back-end components to support it.  (Built in PHP, if anybody is wondering.)

We've started to bundle a recent build of Apple's WebKit (the technology that powers Safari) with the program. Even with the improvements released in Mac OS X 10.4.3, there are still several bugs which have been fixed in newer versions of WebKit that we need to take advantage of. The unfortunate side-effect of all this is that this makes the downloadable application rather large — over nine megabytes, compressed!  On the bright side, when Apple releases their next update to WebKit, we should be able to stop bundling WebKit and give Sandvox a diet.

We know from all the emails and comments submitted here on the website that a lot of people are anxious to try and test and use Sandvox... we hear you!  I'm reminded of the old Orson Welles commercial… We will release no software before its time. :-)