Ok this is not mandatory. So do not lose time with it. S.
> On 13 Feb 2021, at 17:28, David Pennington <da...@totallyobjects.com> wrote: > > Firstly, I didn’t explain that all the visuals are written in Seaside and, > currently, the pages are just there to deliver the output. > > Secondly, as it is our bank account, I don’t really think that it would be > appropriate. Let me mock up some stuff and see how I go. > > David > >> On 13 Feb 2021, at 16:20, Stéphane Ducasse <stephane.duca...@inria.fr >> <mailto:stephane.duca...@inria.fr>> wrote: >> >> Thanks david. >> Do you have a visual? >> Preferably in Pharo? >> >> S. >> >>> On 13 Feb 2021, at 13:40, David Pennington <da...@totallyobjects.com >>> <mailto:da...@totallyobjects.com>> wrote: >>> >>> OK, here goes. >>> >>> My finishing project formy Open University degree (started in 1974 and >>> finished in 2017!) was a routing program for freight cars on US model >>> railways - written in VAST Smalltalk with a Seaside front end and a Riak >>> back end. Riak is a multi-user, fail over resilient Key/Value (K/V) >>> database. I used it on a Linux server as I couldn’t get it going under >>> MacOS. However, now I have finished my degree, I have disposed of the >>> server so, for my new project I didn’t have a database. I had built my own >>> K/V database some years ago to run the management and web software for a >>> scale model shop that I owned at that time so I decided that I would >>> recreate that database for my current use. >>> >>> TinkKV is my Smalltalk K/V. It relies on the OS for saving and retrieving >>> objects which are saved using STON (Smalltalk Object Notation) format. >>> Simple, there are two levels of bucket - 1) ‘Bucket’ and 2) ’SubBucket’. >>> There can be multiple buckets which can contain multiple sub buckets. In my >>> application, items are stored under two keys - FAOEntry (the basic entry >>> object) which is the primary bucket, and multiple sub buckets keyed by the >>> category of each object. It is a single user, local machine DB which is >>> extremely fast - retrieves 189 records in 0.18 seconds on an M1 Mac. >>> >>> Family Accounts is a simple home accounts management package that will >>> evolve over the coming month but basically imports transactions from a >>> NatWest Sage Accounts format download and inserts them into the database. >>> Each object can be categorised for budget control and each budget can be >>> displayed. The program can import a set of regular items (in CSV format) >>> that recur monthly so that a monthly budget can be managed. It is written >>> in Pharo 8.0. >>> >>> I have been writing Smalltalk since 1990 when I started with Digitalk >>> Visual Smalltalk but since about 1996 I have been using IBM/Instantiations >>> VisualAge (VAST). I started the program, knowing nothing about Pharo, >>> around the 15th January so it has taken just about a month of 1 -2 hours a >>> day firstly to get to grips with Pharo and then to write the DB and >>> Program. I have found Pharo quite difficult to come to grips with as, in >>> comparison to VAST, it seems to be written for academics rather than >>> business apps. However, once I got my head around how it was all put >>> together, I found it an easy transition and great fun to use. I had >>> expected to continue with VAST under Parallels but found that neither >>> Parallels (well partially) or Windows 10 currently works successfully on an >>> M1 MacBookAir. I did try to get hold of VisualWorks but didn’t get any >>> response to my request for a download for some reason. I have written a >>> good few frameworks for VAST so, now that my program is running >>> successfully, I will have a look and see if I can port anything else. Watch >>> this space. >>> >>> David Pennington >>> Totally Objects >>> (Http://www.totallyobjects.com <http://www.totallyobjects.com/>) >>> >>>> On 13 Feb 2021, at 11:09, Stéphane Ducasse <stephane.duca...@inria.fr >>>> <mailto:stephane.duca...@inria.fr>> wrote: >>>> >>>> Hi david >>>> >>>> Two points: >>>> - I would love to have a little success story about your application >>>> = one paragraph what is does + one paragraph how technology is >>>> cool :) >>>> >>>> - if you need we have a native VM for M1 (the stackVM). >>>> >>>> S. >>>> >>>>> On 11 Feb 2021, at 20:38, David Pennington <da...@totallyobjects.com >>>>> <mailto:da...@totallyobjects.com>> wrote: >>>>> >>>>> Hi there Peter >>>>> >>>>> I have been writing Smalltalk since 1990 first with Digitalk and then >>>>> IBM/Instantiations VAST. However, I am a newbie with Pharo having only >>>>> used it for the last 3 weeks so I am pleased to have got my first Seaside >>>>> app working successfully - it’s a home banking management app that >>>>> imports from Sage compatible CSV files supplied by NatWest. This is the >>>>> only real difficulty so I am very pleased with the work. >>>>> >>>>> I use my own brand key/value database that saves objects out to the disk. >>>>> With my new M1 MacBookAir, I am getting read and write values around .3 >>>>> second for 125 records so I am very happy. >>>>> >>>>> I have yet to look at deleting the old file before writing but I am sure >>>>> that this will make it superb. >>>>> >>>>> Many thanks for your help in this. >>>>> >>>>> David >>>>> TotallyObjects >>>>> http://www.totallyobjects <http://www.totallyobjects/>.com >>>>> >>>>> Your suggestion worked perfectly - I truncate the file and it parses >>>>> >>>>>> On 11 Feb 2021, at 17:07, <pe...@pbkresearch.co.uk >>>>>> <mailto:pe...@pbkresearch.co.uk>> <pe...@pbkresearch.co.uk >>>>>> <mailto:pe...@pbkresearch.co.uk>> wrote: >>>>>> >>>>>> David >>>>>> I think you are misreading the debugger display. The bit you are missing >>>>>> is the last few characters in the evaluation display, after the closing >>>>>> parenthesis. They should not be there if it is displaying a dictionary. >>>>>> Evidently the variable 'aDict' is in fact an association whose key is >>>>>> the dictionary and whose value is nil. >>>>>> >>>>>> I can't see where it goes from there, but I think you need to look more >>>>>> closely at the preceding line, FAOEntry>>getEntryObjectFrom:, and see >>>>>> what exactly it does with the junk in your .dat file. >>>>>> >>>>>> HTH >>>>>> >>>>>> Peter Kenny >>>>>> >>>>>> >>>>>> -----Original Message----- >>>>>> From: David Pennington <da...@totallyobjects.com >>>>>> <mailto:da...@totallyobjects.com>> >>>>>> Sent: 11 February 2021 16:46 >>>>>> To: Any question about pharo is welcome <pharo-users@lists.pharo.org >>>>>> <mailto:pharo-users@lists.pharo.org>> >>>>>> Subject: [Pharo-users] Re: Problem with Dictionary and Associations >>>>>> >>>>>> Thank you for that but it doesn’t resolve my problem. Why does the stack >>>>>> move to an Association when doing the access to the dictionary? It is >>>>>> the Association indexing that fails as it won’t allow #entryAmount as a >>>>>> key. >>>>>> >>>>>> If I inspect the following code (STON fromString: result ) in the line ^ >>>>>> self makeObject: (STON fromString: result ) I get an Association. Why >>>>>> don’t I get a Dictionary. I did two days ago when all of this was >>>>>> working perfectly and we were happily matching the Pharo Seaside display >>>>>> to our bank account :=) >>>>>> >>>>>> David >>>>>> >>>>>>> On 11 Feb 2021, at 16:39, Sven Van Caekenberghe <s...@stfx.eu >>>>>>> <mailto:s...@stfx.eu>> wrote: >>>>>>> >>>>>>> I can parse the file data you provided: >>>>>>> >>>>>>> STON fromString: >>>>>>> '{#entryName:''Housekeeping'',#entryDate:Date[''2021-02-25Z''],#transactionID:''2021022501'',#entryAmount:-400/1s8,#entryCategory:''Housekeeping'',#entryDescription:''Housekeeping'',#match:nil}ousekeeping'',#match:nil}' >>>>>>> >>>>>>> >>>>>>> "a Dictionary(#entryAmount->-400.00000000s8 >>>>>>> #entryCategory->'Housekeeping' #entryDate->25 February 2021 >>>>>>> #entryDescription->'Housekeeping' #entryName->'Housekeeping' >>>>>>> #match->nil #transactionID->'2021022501' )" >>>>>>> >>>>>>> (BTW, this is STON not JSON). >>>>>>> >>>>>>> What I do see in the input is junk after the last } >>>>>>> >>>>>>> That can happen when you overwrite an existing file with shorter >>>>>>> content. You should truncate such a file. >>>>>>> >>>>>>> From your screenshot I can see nothing wrong, #entryAmount seems an >>>>>>> existing key in aDict, that should just work. >>>>>>> >>>>>>>> On 11 Feb 2021, at 16:33, David Pennington <da...@totallyobjects.com >>>>>>>> <mailto:da...@totallyobjects.com>> wrote: >>>>>>>> >>>>>>>> I attach a couple of screen shots and a file containing the item that >>>>>>>> I am trying to open. What else can I supply? This has been working for >>>>>>>> a couple of weeks and suddenly doesn’t work. I save the JSON and then >>>>>>>> load it back again. I enclose a file with the JSON as contents. As you >>>>>>>> can see from the screenshot, the debugger shows it as a dictionary but >>>>>>>> the execution path takes it to an Association which is what I don’t >>>>>>>> understand. >>>>>>>> >>>>>>>> <stack.rtf><20210225 01><screenshot.png> >>>>>>>> >>>>>>>>> On 10 Feb 2021, at 19:17, Sven Van Caekenberghe <s...@stfx.eu >>>>>>>>> <mailto:s...@stfx.eu>> wrote: >>>>>>>>> >>>>>>>>> Hi David, >>>>>>>>> >>>>>>>>>> On 10 Feb 2021, at 19:18, da...@totallyobjects.com >>>>>>>>>> <mailto:da...@totallyobjects.com> wrote: >>>>>>>>>> >>>>>>>>>> I am using STON to objects out to disk. Up to two days ago, I was >>>>>>>>>> reading them in as Dictionaries and converting to objects from >>>>>>>>>> there. All of a sudden yesterday morning, I got an error saying that >>>>>>>>>> the association is only indexable with integers. Even so, I don't >>>>>>>>>> seem to be able to access the contents. >>>>>>>>>> >>>>>>>>>> Fistly, any ideas why this has changed and secondly, any ideas how >>>>>>>>>> to fix it? >>>>>>>>>> >>>>>>>>>> David >>>>>>>>>> Totally Objects >>>>>>>>>> >>>>>>>>>> Sent from my Huawei tablet >>>>>>>>> >>>>>>>>> I am afraid I need more information. >>>>>>>>> >>>>>>>>> Could you create a reproducible case ? >>>>>>>>> Do you have a stack trace ? >>>>>>>>> >>>>>>>>> In any case, STON is a text format, that can be edited (in most >>>>>>>>> cases, shared or circular references being hard to edit by hand). >>>>>>>>> >>>>>>>>> Sven >>>>>>>> >>>>> >>>> >>>> -------------------------------------------- >>>> Stéphane Ducasse >>>> http://stephane.ducasse.free.fr <http://stephane.ducasse.free.fr/> / >>>> http://www.pharo.org <http://www.pharo.org/> >>>> 03 59 35 87 52 >>>> Assistant: Aurore Dalle >>>> FAX 03 59 57 78 50 >>>> TEL 03 59 35 86 16 >>>> S. Ducasse - Inria >>>> 40, avenue Halley, >>>> Parc Scientifique de la Haute Borne, Bât.A, Park Plaza >>>> Villeneuve d'Ascq 59650 >>>> France >>>> >>> >> >> -------------------------------------------- >> Stéphane Ducasse >> http://stephane.ducasse.free.fr <http://stephane.ducasse.free.fr/> / >> http://www.pharo.org <http://www.pharo.org/> >> 03 59 35 87 52 >> Assistant: Aurore Dalle >> FAX 03 59 57 78 50 >> TEL 03 59 35 86 16 >> S. Ducasse - Inria >> 40, avenue Halley, >> Parc Scientifique de la Haute Borne, Bât.A, Park Plaza >> Villeneuve d'Ascq 59650 >> France >> > -------------------------------------------- Stéphane Ducasse http://stephane.ducasse.free.fr / http://www.pharo.org 03 59 35 87 52 Assistant: Aurore Dalle FAX 03 59 57 78 50 TEL 03 59 35 86 16 S. Ducasse - Inria 40, avenue Halley, Parc Scientifique de la Haute Borne, Bât.A, Park Plaza Villeneuve d'Ascq 59650 France