May 23, 2003

We only let you hack it when it's ready

Among other things, I've been looking at Open Source repositories to publish working code to and start inviting collaboration on. Sourceforge is the obvious one, though the smaller, newer, more focused Symbian Open Source looks nice (but doesn't appear to have CVS access, so maybe not).

Then I noticed Charles Miller's The Open Source Prime Directive. Good points, and this (writing about design rather than getting on with actually writing code) is something that I'm guilty of.

I am clearly not ready to start collaborating, even though it's my stated aim. It's quite interesting trying to balance the complexity of a spreadsheet (it really does need to be designed) with the aim of producing something "good enough" to start collaborating on. I have to admit that my attitude occasionally shifts into Gilgamesh-as-an-interesting-resource-for-would-be-spreadsheet-writers, and I have to bring it back into focus.

So the plan should be for me to release "Working code that does a useful and/or interesting subset of the project's goal" (Taking the exhortations on automated build and instructions for read). I will work on releasing the basic container model (Rows, Columns, Cells) with sufficient tests and example code to make it interesting to hack.

(I've just got some more design to do first ;->)

Posted by osfameron at 09:45 AM | Comments (0) | TrackBack

May 16, 2003

Project status update

Stephan writes:
we have a weblog and wiki tool called SnipSnap (written in Java, GPL). We have a table macro with some simple spreadsheet funcions (SUM, AVG,...). Is it possible to use gilgamesh spreadsheet components for this?
That's an interesting question. I should make clear that Gilgamesh is currently in the planning/architectural-design stage. However, I'm certainly planning for the project to develop in such a way that the various components can be used by other projects.

In summary, some of the major components will be:

Container model Grid, Rows, Columns, Cells, and routines to manipulate them Grid, Row, & Column primitives in proof of concept. Cell model & Range model are very interesting and I will write about them in detail soon
References References to dependants and dependancies. Calculation of natural order. Written up in some detail, proof of concept written. When Ranges are planned, this model will need to be updated (e.g. formula referring to A1:E5 will have to be update also when cell C3 changes)
Name lookup Converting between "2003 Sales Results" and Cell(A3). Some thoughts.
Evaluation Engine interface

An interface will connect the Reference model with a conforming evaluation engine.

Another interface will provide a generic minimal formatting model (e.g. Dates, Numbers, Strings) which will be controlled by the User Interface.

If we do this well, this really pays off in terms of using Gilgamesh components, because you could plug in any engine with the appropriate wrapper:

Some thoughts, no detailed plans
Evaluation Engine wrapper Once the interface is ready, we need a wrapper around the chosen engine (Simkin, Frink, etc.) to make it conform to the interface. Still in the phase of evaluating (no pun intended) the various engines available.
File format/persistence. How to save the file (for J2ME into the simple integrated Record based database). This might be done incrementally. Also need to look at conversion to and from other popular file formats like CSV (comma separated values) and Microsoft's .xls Lots of interesting thoughts, no detailed plans.
User Interface (controller semantics) Implementing the semantics that the user will use to control the application. How the pen-based user interface will interact with objects in the spreadsheet (taps, drags, icons, text boxes vs. selection boxes etc.) Lots of interesting thoughts and copious notes. I really meant to start blogging my design ideas on Spreadsheet interface, but the detail of the lower level components has kept me so interested that I haven't had a chance. Really looking forward to some discussion on this though!
User Interface (platform implementation) Symbian-specific code for UI widgets. No work done
So you can see there is a lot of work to be done before Gilgamesh has any useful components at all! Of course, as this is an open-source project... I need to:
  1. Make the current code, such as it is, available in a public code repository.
  2. Invite interested developers, testers, documentation-writers and the like to get involved.
Well, rather than a formal announcement, if anyone is interested, please let me know here, or email me at [email protected]
Posted by osfameron at 10:02 PM | Comments (0) | TrackBack