stp,
Thank you.
I hope I get a chance to try this out this weekend. I have some data that I would like to objectify and store outside the image.
If you have any suggestions for an approach to this please let me know. I haven't looked at MinneStore for awhile and I don't know how to use it, but that hasn't stopped me yet.
The data that I am working with are sets of points which identify the geographic boundaries of the individual states of the USA. I am porting and modifying an application that I found on the archive. I hope to expand it to include much more data about each state and turn it into a useful teaching tool.
If you have any specific tasks that a newbie could perform to help with the MinneStore project let me know and I will try to do it. I am eager to pay back the tremendous debt that I have incurred to the whole Squeak community.
Thanks,
John-Reed Maffeo Mesa, AZ
John-Reed Maffeo wrote:
stp,
Thank you.
You're quite welcome!
I hope I get a chance to try this out this weekend. I have some data that I would like to objectify and store outside the image.
That's what it's there for!
If you have any suggestions for an approach to this please let me know.
Take a look at the examples on the MinneStore web site (http://www.objectcomposition.com). I also put the basic syntax examples in the file ftp://ftp.create.ucsb.edu/pub/stp/OODB/MStore-2.4b/SyntaxExamples.t. The basic usage pattern is to create a database given a storage directory, to create one or more object sets in it (these correspond to classes), and to define indeces for the object sets (corresponding to instance variables and accessors). One can then add object to an object set, or retrieve objects based on queries. The basic code for this looks like:
"Create a DB" db := MinneStoreDB newOn: dirName.
"Add an object set for class Parts" (db addObjectSetNamed: #Parts) storesClass: Part; indexOn: #name domain: String; indexOn: #number domain: Integer.
"Store a couple of parts objects" db store: (Part name: 'spout' number: 101). db store: (Part name: 'lever' number: 102).
"Save to disk" db save.
...later...
"Re-open DB" db := MinneStoreDB openOn: dirName.
"Select parts" results := (db getAll: #Parts) where: #number between: 100 and: 110; "inclusive" execute.
If you have any specific tasks that a newbie could perform to help with the MinneStore project let me know and I will try to do it.
YES, LOTS! Well, aside from basic bug chasing (they're still there, I know) and portability (it's only guaranteed to work on Macs at the moment, and it requires the new 2.4 directory primitives), I'm working on three main topics: performance, performance, and flexibility. The performance issues are related to the speed and compactness of Squeak ReferenceStreams (I'd like to see special compact/fast formats for lots more classes -- this means writing storeDataOn and readDataFrom methods) and to the caching within MinneStore (I think it does too much I/O, but am still learning about it). The flexibility issues are related to the use of arbitrary blocks for generating indeces (rather than requiring a selector for which an accessing method exists) and on support for dynamic indeces and indexing-on-demand.
Collaborators are invited!
On Thu, 29 Apr 1999, Stephen Travis Pope wrote: [snip]
YES, LOTS! Well, aside from basic bug chasing (they're still there, I know) and portability (it's only guaranteed to work on Macs at the moment, and it requires the new 2.4 directory primitives), I'm working on three main
Well, I'm trying to get it up and running on Win98 and the first sticking point is that FileDirectory>>deleteDirectory: always fails! Thus the MinneStore compatability test always fail. They fail, seemingly, no matter how I try to use them (e.g., simple tests outside of the MinneStore fair no better). (Note: I've tried using the STP image version of MinneStore, as well as a plain 2.4 image).
Are the directory primities actually available for Windows?
(OTOH, I'm *very* excited by MinneStore! Thanks for the port.)
Cheers, Bijan Parsia
squeak-dev@lists.squeakfoundation.org