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

Reply via email to