Thanks david. 
Do you have a visual?
Preferably in Pharo?

S. 

> On 13 Feb 2021, at 13:40, David Pennington <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://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