Software Garden OLPC Home Page
 
INTRODUCTION

This is the home page for information about the projects Software Garden is involved with that relate to the One Laptop Per Child's XO computer. Right now that consists of one project, the SocialCalc project for the OLPC XO.

THE SOCIALCALC PROJECT

Software Garden is involved in the project of Socialtext, Inc., to provide a system based on a new version of the SocialCalc spreadsheet code on the OLPC XO-1 computer which we're calling "SocialCalc" on the OLPC. Eventually we hope to have a complete OLPC Sugar Activity that provides spreadsheet capabilities based on the SocialCalc spreadsheet engine. At this point we have an early preview copy of a testbed HTML file that accesses many of the capabilities of the new SocialCalc version 2 JavaScript code along with a few supporting image and sample data files. All of the functionality runs in the browser using JavaScript.

In addition, we have the start of a native OLPC XO Python application to run the JavaScript directly without needing to first start up a browser and to integrate it into the standard OLPC Sugar application framework. It is hoped that this Python application will be general purpose enough to be reused by other projects written mainly in JavaScript, opening up the XO to JavaScript programmers without the need to learn any Python.

The goal of the SocialCalc project is to provide a very capable, simple spreadsheet which runs locally on your computer. The main engine is written in JavaScript and is available under Open Source licenses. Much of the code, being written in a common scripting language, should lend itself to examination, reuse, experimentation, modification, and extension.

Photo of SocialCalc on an XO-1

Functionality includes:

In this early release, there is a very simple UI for modifying the sheet consisting of a simple input box instead of a formula bar and a primitive editing button bar. There is a simple interface for accessing more of the editing API through drop downs. There is support for operations such as fill right/down, setting cell borders, text color, background color, column width, copy/paste, insert/delete row/column, sort, etc.

The original SocialCalc 1.1 code, and the wikiCalc 1.0 code on which it is based, is written in Perl. They run on a server or your PC, with some JavaScript support running the browser for editing and other user interface purposes. This new version of SocialCalc is based on new code, mainly in JavaScript, that runs in a browser or other HTML/JavaScript environment like the Gecko library on the OLPC. In addition to the editing, the spreadsheet calculations are also performed in JavaScript. There is no need for a server, nor any connection to the Internet or other computers.

NEWS
2008-02-26:
Added a link to the contents of the LICENSE.txt file to the Licensing section.
2008-02-22:
Version 0.7.0 released. This adds the rest of the 109 planned formula functions, along with a simple reference listing them, their arguments, and a brief description on the Help tab.

Also posted a new blog post about this version.
2008-02-15:
Version 0.6.3 released. This adds more formula functions, copy/cut/paste, merge/unmerge, insert/delete row/column, Open Source licensing, sort, and a very primitive graph display. The UI look is more in the style of the XO.
2008-01-27:
Blog post about this project on Dan Bricklin's Log.
2008-01-26:
This web page was created.

You can run a copy of the program by loading this URL in a browser:

http://www.peapodcast.com/sgi/olpc/socialcalc/

You can download a zip file with all of the files for direct execution on an OLPC XO (or most any other computer with a recent compatible browser) here:

http://www.peapodcast.com/sgi/olpc/socialcalcxo-0.7.0.zip

On an XO, by clicking this link you can download an activity that Luke Closs put together that has this code (but no save and load yet) bundled with some Python code to invoke the browser to run standalone:

SocialCalcActivity-1.xo: http://tinyurl.com/2ca6av

Right now the only documentation is on the Help tab available when running the program. Please read it.

There are sample files to show you what the system is/will be capable of doing. Go to the Source tab and choose the sample files from the drop down list.

This product consists of components licensed under different licenses. Some are licensed under the Common Public Attribution License (CPAL) and others under the Artistic License 2.0. Check the contents of each file for a statement of the license for that file. The sheet calculation, manipulation, and rendering code are released under the Artistic 2.0 license (the one Perl uses). The JavaScript scrolling and editing user interface code are released under the CPAL 1.0 license (a license approved by the Open Source Initiative that was written by Socialtext based on the MPL 2.0 license) with some limited attribution requirements. The license for the Python code for the Sugar interface (not in the release above) is currently Artistic 2.0.

A copy of the contents of the LICENSE.txt file from the release, with the specifics of the attribution requirements, is available online here.

The SocialCalc code is:

(c) Copyright 2008 Socialtext, Inc.
All Rights Reserved.

The software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the Licenses for the specific language governing rights and limitations under the Licenses.

This code is early and surely has bugs.

The OLPC part of this project has been coordinated by Manusheel Gupta of OLPC with guidance from Walter Bender and others of OLPC.

The Python code for the OLPC XO-1 was initially coded by Luke Closs of Socialtext, Inc.

The JavaScript SocialCalc code was initially coded by Dan Bricklin of Software Garden, Inc., for Socialtext, Inc.
Based in part on the SocialCalc 1.1.0 code written in Perl.
The SocialCalc 1.1.0 code was:

Portions (c) Copyright 2005, 2006, 2007 Software Garden, Inc.
All Rights Reserved.
Portions (c) Copyright 2007 Socialtext, Inc.
All Rights Reserved.
The Perl SocialCalc started as modifications to the wikiCalc(R) program, version 1.0.
wikiCalc 1.0 was written by Software Garden, Inc.

wikiCalc, Garden, and Software Garden are registered trademarks of Software Garden, Inc.
Socialtext, SocialCalc, and the Socialtext logo and Dreamcatcher are trademarks of Socialtext, Inc.
Dan Bricklin's is a registered trademark of Daniel Bricklin.