Socialcalc on the OLPC
February 26th, 2008Dan Bricklin and I have been working to get Socialcalc on the XO laptop for the OLPC project.
Check out the details at Dan’s site: http://www.peapodcast.com/sgi/olpc/
Dan Bricklin and I have been working to get Socialcalc on the XO laptop for the OLPC project.
Check out the details at Dan’s site: http://www.peapodcast.com/sgi/olpc/
When we made the split between the two new halves of SocialCalc, we knew that the cut was quite clumsy, in that some code would probably end up in the wrong half for a while, but we hoped we’d at least managed to make sure everything was working properly.
We weren’t quite correct.
The 1.0 release of SocialCalc had a ‘Strings’ file that defined all the user visible text in the application, to make it easier to localise the product. For every other file in the distribution it was just a matter of working out which half it belonged in. This file needed to be split in two, partitioning based on the strings that were used in each part. As far as we know, we managed to split that up correctly.
What we missed, however, was that the ‘definitions.txt’ file, which lets you localise or customise other parts of the application - such as number formats - also allows for overriding content from the Strings file. However, because it gets loaded and parsed in a couple of different places, it would sometimes be operating on the wrong half of the newly split Strings file. For most users this wouldn’t be a problem, as the version shipped with the release doesn’t do that. But some people have already produced (or are working on) translations of SocialCalc into other languages, and this broke things for them.
The workaround to fix this was quite simple, but we decided that whilst we dealing with this area of the code anyway, we may as well tidy it up a little. In particular we didn’t like that there were two different places responsible for reading and parsing the file, each of which did slightly different things. So we’ve factored that all out into a common SocialCalc::Strings::Definitions module that is simply responsible for working with the definitions file.
This is part of our on-going plan for moving forward. Each time we need to fix something, we want to do a little more than just a ‘quick fix’. We’ll be extracting common functionality, and adding tests and documentation, and gradually making the code base easier to maintain, extend, or modify.
If there are any areas you’d like us to tidy up to make something easier that you’d like to do with SocialCalc, please holler on the mailing list.
Update: We’ve fixed this bug. It’s now fixed in Subversion and the latest snapshot.
You can finally download the SocialCalc 1.1.0 release. Presently the core is bundled with the application. The cut between them is a little clumsy at this point, and we’ll be working on smoothing that out over the next while. Of course it will be most appreciated if you want to help us with that, particularly if you want our help in making it easier for you to embed SocialCalc in your application!
Get involved on the mailing list. Let us know how it’s going. Ask questions. Send patches. Or just watch us work via this blog. Thanks for your interest in SocialCalc.
Previously Tony mentioned we’d release in “the next few weeks” under a new license. Writing a new license is hard work and the lawyers are still working on it. We’ve implemented a plan in the mean time to keep the project moving forward. For now, the application will be licensed using the same license as the main Socialtext wiki: the Socialtext Public License 2.0 (STPL 2.0). No-one is entirely happy with this, but it’s better than waiting for the CPAL process to complete first.
Although the application as a whole is under the STPL 2.0, we have, however, split the core spreadsheet functionality out and are making it available under version 2.0 of the Artistic License. This means that the underlying engine, responsible for editing and displaying spreadsheets, will be available under a license that enables people to use it in lots of interesting places and in ways we probably can’t yet imagine. It also means you’ll be able to send us patches for inclusion, and help us make it much better.
Stay tuned by subscribing to the blog feed.
Today we’ve implemented TAB’s counterpart, SHIFT+TAB, which acts as left arrow (←). We’ve brought in some extra talent to make this less painful, and we intend to exploit that talent further in the coming weeks. As the title suggests I’m talking about the MooTools JavaScript library. In particular we’re going to be using the Element.Event class to make life much easier.
We are confident that the amount of JavaScript currently in SocialCalc will decrease drastically with MooTools because of its cross-browser functionality and clear interfaces. Development should go faster, too, with the clear documentation available online.
More next week. Cheers!
Today SocialCalc received a minor feature. When a cell is selected, pressing the TAB key will select the cell to the right of the current cell. Presently this is a poor man’s implementation of TAB navigation in a spreadsheet, copying the functionality of pressing the right arrow key (→) verbatim.
That’s OK, though, because the next steps in the UI will be refactorial. We’re going to clean up the event handling enough to properly handle TAB – and SHIFT+TAB – with minimal effort. You can read more about this on the mailing list, or get involved in the discussion, too.
As usual you can download the very latest from SVN.
There iswas a small bug in SocialCalc that disallowed the input of colons, parentheses, and other valid characters with a keyCode less than 48 when typing directly into the cell. Today I’ve fixed that problem with a simple patch. It’s revision 66 in Subversion. The latest snapshot, ready for download, also has the fix.
Feel free to play around with it. Let us know how it goes on the mailing list.
(aka, When is the next release going to be?)
If you’re wondering what’s behind the ‘latest shapshot’ link, this is a regularly updated pre-release version of SocialCalc (some other projects call this a ‘nightly build’). We try to ensure that this is never broken, so if you ever notice anything odd with it, please let us know on the mailing list.
As of writing this post, the latest version is an “almost ready” version of SocialCalc 1.1.0. This will be a major step up from SocialCalc 0.98 (which if you were following along with prior releases was mostly just wikiCalc 1.0 with some colour-scheme changes), due to the addition of support for Named Ranges, so you can say things like ‘=SUM(monthly_totals)’ rather than ‘=SUM(C3:C14)’.
We also have a whole bunch of other tiny little changes, improvements and tidy-ups that we hope to apply prior to the official release as well. We’re hoping to ship at some stage in the next few weeks, once the lawyers finish tidying up the license. Part of the change from wikiCalc to SoclalCalc involves a switch from the GPL to a new license, provisionally called the Common Public Attribution License (née Socaltext Public License) and once we get the all clear on that, we’re ready for release. As Casey has said, you can keep an eye on the Subversion repository or our RSS feed to watch our progress towards that.
SocialCalc development is an open affair.
Join our mailing list to get involved. Tony Bowden and I will be taking patches and developing openly on the mailing list. If you want to play with SocialCalc today you can download a snapshot or checkout the latest from Subversion.
Thanks for your interest. Keep your RSS reader tuned to this station for ongoing updates. We look forward to working with you!